ヌルポインタ逆参照

ヌルポインタ逆参照

概要

ヌルポインタ逆参照は、nullの可能性がある値をそのまま使用すると発生します。

影響

アプリケーションのクラッシュやサービス拒否につながる可能性があります。

対策

戻り値を確認し、不正状態では早期に失敗させ、適切な場所でOptional型のAPIを使い、利用箇所の近くでnullチェックを行います。

public Object returnNull() {
    return null;
}

public void testNull() {
    String str = returnNull().toString();
}
public void getInputFromFile() {
    try {
    BufferedReader br = new BufferedReader(new FileReader("input.dat"));
    String str = br.readLine();
    str.toUpperCase();
   ...
}
public class ForwardNullEx {
    public void test() {
        String uppercased = toUpperCase(null);
    }

    public String toUpperCase(String arg) {
       arg.toUpperCase();
    }
}
public class UncheckedNullEx {
    public void test(String x) {
        String str = "";
        System.out.println(str);
        if(x != null) {
            str = x.toUpperCase();
        }
        x.toString();
    }
}