Image

Category:

Что будет и почему?

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.