GoogleCloudPlatform / GoogleCloudPlatform/google-cloud-eclipse

Investigate using null analysis via annotations

Aperta
#430 7 commenti 0 reazioni 0 assegnatari Vedi su GitHub
cleanup priority: p4
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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.