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
}
}
}
Что я ожидал произойти былНазначение Операция Java
а) s2 будет установлен в нуль потому, что его операция присваивания, как я не использую ==
б) И я получаю NPE на линии 1 во время выполнения
и вместо этого я получил следующий выход, как показано ниже.
Выход
if(s2=null)
^
required: boolean
found: String
1 error
Может кто-нибудь объяснить, почему я получаю ошибку компиляции?
Хотя я упомянул решение вашего вопроса от jls, но для более подробной информации прочитайте раздел 14.9.1 в jls, это даст лучшее понимание. – Prateek
Умм, это странный вопрос. Почему бы вам просто не поменять значение s2 на null до инструкции if? –