AnnotatedType support
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 30/100
Direzione di ricerca
Inizia leggendo ResolvedType e il comportamento esistente di typeParametersFor(List.class), quindi confrontalo con AnnotatedType e AnnotatedParameterizedType di Java 8. Definisci come i parametri di tipo risolti espongono le annotazioni associate, mantenendo il supporto per Java 7 tramite un apposito meccanismo di compatibilità; il lavoro è completato quando, per l’esempio, viene recuperato @NotNull invece di @Null.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- Java
- Stelle
- 266
- Fork
- 47
- Merge medio
- 1h 42m
- PR unite (30g)
- 1
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di FasterXML/java-classmate
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
FasterXML/java-classmate#111 · 10 commenti ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
FasterXML/java-classmate#81 · 1 commento ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
FasterXML/java-classmate#76 · 6 commenti · 1 reazione ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
FasterXML/java-classmate#72 · 3 commenti ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
FasterXML/java-classmate#69 · 22 commenti ·
Tutte le issue di FasterXML/java-classmate
Issue simili
-
executions.Query — startDate and timeRange filters are sent with inverted comparison operators Apertaarea/plugin
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
kestra-io/plugin-kestra#190 ·
-
litertlm-android AAR ships no consumer ProGuard rules → "mid == null" SIGABRT in minified apps Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
google-ai-edge/LiteRT-LM#3739 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
integra-team-red/meet-map#249 ·
-
[Studio][Bug] Cancelled create-user dialog keeps the password and admin switch for the next attempt Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
apache/rocketmq-dashboard#5064 ·
-
Consent portal: creating a duplicate Purpose shows a generic error instead of "already exists" Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
wso2/dpdp-accelerator#287 ·