AnnotatedType support
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 30/100
Rechercherichtung
Beginne mit dem Lesen von ResolvedType und dem bestehenden Verhalten von typeParametersFor(List.class), und vergleiche es anschließend mit AnnotatedType und AnnotatedParameterizedType aus Java 8. Definiere, wie aufgelöste Typparameter ihre zugehörigen Annotationen offenlegen, wobei die Unterstützung für Java 7 durch einen geeigneten Kompatibilitätsschalter erhalten bleibt; als erledigt gilt die Aufgabe, wenn für das Beispiel @NotNull statt @Null abgerufen wird.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
New to Java 8, the AnnotatedType class carries annotations bind to types in Generic expressions.
So if I write
@MaxLength(3) List<@NotNull Integer> myField;
I can get the @NotNull annotation via something like:
Field f = MyClass.class.getDeclaredField("myField");
AnnotatedParameterizedType annType = (AnnotatedParameterizedType) field.getAnnotatedType();
AnnotatedType[] childAnnotatedTypes = annType.getAnnotatedActualTypeArguments();
But then I have to assume the parameter I want is the first in the returned array. But maybe I have something like
class MyFunnyList<T> implements List<@NotNull Integer> {}
// ...
private MyFunnyList<@Null String> myFunnyField;
Using ResolvedType, I can call type.typeParametersFor(List.class).get(0) to get the correct parameter type (Integer rather than String). It'd be nice to have also a way to retrieve the annotations associated with it (@NotNull rather than @Null). Note that this feature must not break support for Java 7, so some type of switch will probably need to be used.
- Vorherrschende Sprache
- Java
- Sterne
- 266
- Forks
- 53
- Ø Merge
- 18 Std. 46 Min.
- Gemergte PRs (30 T.)
- 8
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus FasterXML/java-classmate
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
FasterXML/java-classmate#111 · 10 Kommentare ·
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 20/100
FasterXML/java-classmate#81 · 1 Kommentar ·
-
Make `GenericType<T>` not implement `java.lang.reflect.Type`Evtl. vergeben @cowtowncoder hat das vor 309 Tagen übernommen. Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
FasterXML/java-classmate#76 · 6 Kommentare · 1 Reaktion ·
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 20/100
FasterXML/java-classmate#72 · 3 Kommentare ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
FasterXML/java-classmate#69 · 22 Kommentare ·
Alle Issues in FasterXML/java-classmate
Ähnliche Issues
-
BoxAttachmentMulti parsing leaks IOException / ArrayIndexOutOfBoundsException on malformed content instead of IllegalArgumentExceptionEvtl. vergeben @Kshot3000 hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
ergoplatform/ergo-appkit#272 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 64/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 66/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 64/100
utopia-rise/godot-jvm#1004 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
spring-projects/spring-grpc#442 ·