GoogleCloudPlatform / GoogleCloudPlatform/google-cloud-eclipse
Investigate using null analysis via annotations
- Lingua principale
- Java
- Stelle
- 90
- Fork
- 52
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
JDT supports using JSR305-like annotations for indicating whether methods and field can return or hold `null` values.
- [Eclipse Help: Using Null Annotations](http://help.eclipse.org/neon/topic/org.eclipse.jdt.doc.user/tasks/task-using_null_annotations.htm?cp=1_3_9_0)
We can use FindBugs/JSR305-style `javax.annotation.Nullable` and `Nonnull` annotations and/or the Eclipse JDT equivalents `org.eclipse.jdt.annotations.Nullable`, and `NonNull`. JDT supports specifying multiple annotations so we could mix both (or use libraries using either).
The JSR305-style annotations:
- 👍 FindBugs will use them too
- 👎 [imperfect match to Eclipse JDT null analysis](https://sourceforge.net/p/findbugs/bugs/1355/)
JDT annotations:
- 👍 @NonNullByDefault covers method return values too
- 👍 under Java 8, supports [annotating type uses](http://help.eclipse.org/mars/index.jsp?topic=/org.eclipse.jdt.doc.user/tasks/task-using_null_type_annotations.htm), which allows things like `int processWithoutNulls (@NonNull List<@NonNull Integer> ints)` to guarantee that `null` won't be present in `ints`
- 👍 👎 Unsure if we can configure FindBugs to use these annotations though [it seems some are using them](https://sourceforge.net/p/findbugs/bugs/1425/)
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia dalla pagina Eclipse Help collegata sulle null annotations, quindi confronta le opzioni di annotazione in stile JSR305 e di Eclipse JDT descritte nell’issue, inclusa la loro compatibilità con FindBugs. Il lavoro sarà considerato completato quando l’approccio alle annotazioni supportato e il relativo ambito saranno chiaramente determinati.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- java
- Ambito
- tooling
- Tipo di issue
- Funzionalità
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 25/100