Scalaコンパイラには、実行時にnullポインタの逆参照があるかどうかを確認するための-Xcheck-null
があります。常にnull以外の結果を返すメソッド呼び出しを呼び出す結果
それは私のために大丈夫だが、私はあまりにも多くの偽陽性を得る、すなわち、私はロガー定義するとします。
private final val LOGGER: Logger = LoggerFactory.getLogger(classOf[GenericRestImpl])
null
を返すことはありませんgetLogger
方法を。どのように私はコンパイラにこの知識を渡すことができますので、それは不平を言いませんか?
[WARNING] TestImpl.scala:31: warning: potential null pointer dereference: LOGGER.debug
[WARNING] LOGGER.debug("Using {} for sort", sortParam)
私は新しいインスタンスを作成し、私はNotNull
特性とそれをマークすることができます。okです
return new Foo() with NotNull.
が、何他のメソッドから返さオブジェクトを行うには?特にサードパーティ製のライブラリから来ているのですか?あまりにも多くのオーバーヘッドを追加するので、私はすべての変数をオプションとしてマークするのは好きではありません。また、私は暗黙の変換を作成するのは嫌いです(NotNullとしてマークしたいクラスごとに余分なクラスが必要になるため)
私はLibrary support for Scala's NotNull traitの質問もチェックしましたが、私の問題を解決できませんでした。あなたが何かをタグ付けするNotNull
を使用できるように
あなたは正しく理解していますが、NotNull形質は単なるマーカーです。それ以上は何もしません。 – Jatin