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

  • Arun Kumar

    Arun Kumar

    18 Mart 2010
  • Autodesk 3ds Max Learning Channel

    Autodesk 3ds

    23 HAZİRAN 2010
  • Damien Walters

    Damien Walte

    20 AĞUSTOS 2006