Hangi @NotNull açıklama Java kullanmalıyım?
Benim kod daha okunabilir hale getirmek gibi IDE kod, muayene ve/veya statik kod analizi (FindBugs ve Sonar gibi Aletler kullanmak NullPointerExceptions önlemek için arıyorum. Bu araçların çoğu birbiri ile uyumsuz' 0*/@NonNull
/@Nonnull
*açıklama ve benim kod tüm liste okumak için çok kötü olur. Herhangi bir öneri, tek bir 'en iyi'? İşte buldum eşdeğer ek açıklamalar listesi:
javax.validation.constraints.NotNull
Çalışma zamanı doğrulama, statik analiz için hazırlandı.
documentationedu.umd.cs.findbugs.annotations.NonNull
Findbugs statik analiz ve bu nedenle Sonar tarafından kullanılır
documentationjavax.annotation.Nonnull
Bu Findbugs ile çok işe yarayabilir, ama genel amaçlı-305 etkin değil.
sourceorg.jetbrains.annotations.NotNull
Eclipse tarafından kullanılan statik analiz için IDE.
documentationlombok.NonNull
Kod oluşturma kontrol Proje Lombok kullanılır.
Standart var bu yana hiçbir açıklama yer tutucu.
source, documentation
CEVAP
Sadece javax
ad Lombok ve Kişisel ne yaptığını seviyorum bile olsa) altında şeyler kullanırdım. Aksi halde, çok fazla bir şey için bir şey bir bağımlılık çalışma zamanı verir ne başka bir yaratmak olabiliranlambilim. Belki bazı projeler için, bu tamam, ama bu benim için bir anlaşma kırıcı bir şey olurdu.
Zaten burada Java EE 6 ile çünkü javax.validation.constraints.NotNull
kullanırdım.
javax.annotation.NonNull
Java 8'e kadar burada Stephen belirttiği gibi) olmayabilir. Ve diğer standart ek açıklamalar değildir.
Eğer ek açıklamalar genişletilebilir olsaydı güzel olurdu. Bu şekilde non-null
açıklama kendi miras tanımlama/bir şey uzanan olabilir. Standartlar çözdüklerini zaman yapmak gerekir hepsi kendi özel açıklama yeniden tanımlamak olacaktır.
Ne yazık ki durum böyle değil.
Hangi açıklama kullanmalıyım: @İdClass...
java.açıklama.XMLGregorianCalendar içi...
Dönüştürme 8601 uyumlu ISO java Dize.a...
java.açıklama.Vs java tarih.sql.Tarih...
Set kullanımı(önerilen|Maksimum|Minimu...