9
@Nullableおよび@Nonnullアノテーションをより効果的に使用するにはどうすればよいですか?
私はそれを見ることができる@Nullableと@Nonnull注釈ができ予防に有用であるNullPointerExceptionのを、彼らは非常に遠くに伝播されません。 これらの注釈の有効性は、1レベルの間接参照の後に完全に低下するため、ほんの数個追加しただけでは、あまり伝播しません。 これらの注釈は十分に実施されていないため、でマークされた値@Nonnullがnull ではないと想定し、その結果nullチェックを実行しない危険があります。 以下のコードはでマークされたパラメータが発生@Nonnullするnullいかなる苦情を上昇させずに。NullPointerException実行されるとそれをスローします。 public class Clazz { public static void main(String[] args){ Clazz clazz = new Clazz(); // this line raises a complaint with the IDE (IntelliJ 11) clazz.directPathToA(null); // this line does not clazz.indirectPathToA(null); } public void indirectPathToA(Integer y){ directPathToA(y); } public void directPathToA(@Nonnull Integer x){ x.toString(); …