Scala編譯器有-Xcheck-null
它試圖檢查是否有任何潛在的空指針在運行時解引用。Mark方法調用它總是返回非空結果
這沒關係,我,但我得到了太多的假陽性,即假設我定義記錄:
private final val LOGGER: Logger = LoggerFactory.getLogger(classOf[GenericRestImpl])
的方法getLogger
從不返回null
。我怎樣才能將這些知識傳遞給編譯器,使其不會抱怨?
[WARNING] TestImpl.scala:31: warning: potential null pointer dereference: LOGGER.debug
[WARNING] LOGGER.debug("Using {} for sort", sortParam)
當我創建新實例,我可以NotNull
性狀標記它:
return new Foo() with NotNull.
這是確定的,但做什麼用的對象從其他方法返回?特別是如果它來自第三方圖書館?我不喜歡將所有變量標記爲可選,因爲這會增加太多開銷。此外,我不喜歡創建隱式轉換的想法(因爲它需要額外的類,我想標記爲NotNull的每個類。
我也檢查了問題Library support for Scala's NotNull trait,但它沒有幫助解決我的問題。
你確實理解正確,NotNull特徵只是一個標記。它什麼也沒做。 – Jatin