class string1 {
static public void main(String[] ar) {
String s1 = "test";
String s2 = new String();
if(s2=null) { // line 0
System.out.println(s1);
System.out.println(s2.length()); //Line 1
}
}
}
私が予想していたのは
a)==を使用していないため、代入操作であるため、s2はnullに設定されます
b) そして、実行時に 1 行目に NPE を取得します。
代わりに、以下に示すように次の出力が得られました。
出力は
if(s2=null)
^
required: boolean
found: String
1 error
コンパイルエラーが発生する理由を誰かが説明できますか?