Scala derleyici, çalışma zamanında herhangi bir potansiyel boş işaretçi dereference olup olmadığını kontrol etmeye çalışan -Xcheck-null
vardır.Mark yöntem çağrısı her zaman döndürmez null sonucu döndürür
Benim için Tamam, ama ben logger tanımlamak varsayalım, yani çok fazla yanlış pozitif olsun: getLogger
asla null
döndürür
private final val LOGGER: Logger = LoggerFactory.getLogger(classOf[GenericRestImpl])
yöntemi. Bu bilgiyi derleyiciye nasıl iletebilirim ki şikayet etmeyecek? Ben yeni bir örneğini oluşturduğunuzda
[WARNING] TestImpl.scala:31: warning: potential null pointer dereference: LOGGER.debug
[WARNING] LOGGER.debug("Using {} for sort", sortParam)
Ben NotNull
özelliği ile işaretleyebilirsiniz:
return new Foo() with NotNull.
Tamam
ama ne nesneler diğer yöntemlerle döndü ilgisi? Özellikle 3. parti kütüphaneden geliyorsa? Tüm değişkenlerimi İsteğe bağlı olarak işaretlemekten hoşlanmıyorum çünkü fazla yük ekleyecektir. Ayrıca, örtük dönüşümler yaratmayı sevmiyorum (Notnull olarak işaretlemek istediğim her sınıf için ekstra sınıf gerektirecektir çünkü
Ayrıca Library support for Scala's NotNull trait sorusunu da kontrol ettim, ancak sorunumu çözmemde yardımcı olmadı. bir şey etiketlemek için NotNull
kullanabilmesi
Doğru anlamıyorsunuz, NotNull özelliği sadece bir işaretleyicidir. Daha fazlasını yapmaz. – Jatin