Что будет и почему?
public class Test {
private static int foo(boolean bar) {
return bar ? null : 42;
}
public static void main(String[] args) {
System.out.println(foo(true));
}
}Под "почему" меня интересует отсылка к соответствующему месту в спеке.
Проверял вот на этом:
$ java -version java version "1.6.0_20" Java(TM) SE Runtime Environment (build 1.6.0_20-b02) Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01, mixed mode)
Update: Я действительно запускал "что-то не то". Как так произошло непонятно, ибо история команд свидетельствует о том, что я сначала файл отредактировал (перед этим он содержал код, который печатал null), потом скомпилировал, потом запускал. Повторные компиляции выдают программу, действительно приводящую к NPE.
