SORU
10 ŞUBAT 2011, PERŞEMBE


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ı.
    documentation

  • edu.umd.cs.findbugs.annotations.NonNull
    Findbugs statik analiz ve bu nedenle Sonar tarafından kullanılır
    documentation

  • javax.annotation.Nonnull
    Bu Findbugs ile çok işe yarayabilir, ama genel amaçlı-305 etkin değil.
    source

  • org.jetbrains.annotations.NotNull
    Eclipse tarafından kullanılan statik analiz için IDE.
    documentation

  • lombok.NonNull
    Kod oluşturma kontrol Proje Lombok kullanılır.
    Standart var bu yana hiçbir açıklama yer tutucu.
    source, documentation

CEVAP
10 ŞUBAT 2011, PERŞEMBE


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • How To Cook That

    How To Cook

    16 NİSAN 2011
  • MovieZoneET

    MovieZoneET

    22 Aralık 2009
  • UberFacts

    UberFacts

    26 EKİM 2013