Как это компилируется без ошибок? Как я понимаю, компилятор проверяет тип переменной (в данном случае String
), а затем видит, соответствует ли тип выражения с правой стороны типу переменной (или, по крайней мере, подтипу, но позволяет придерживаться простого case с классом String
, так как он окончательный).
public class InitClass {
public static void main(String[] args) {
String str = (str = "hello");
System.out.println(str);
}
}
Мой вопрос: как скомпилировать str = "hello"
? Компилятор уже знает, что str
должен иметь тип String
?