ヌルポインタ逆参照
ヌルポインタ逆参照
概要
ヌルポインタ逆参照は、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();
}
}