Например:
int anInt = null;
терпит неудачу во время компиляции, но
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println("" + getSomeVal());
}
}
public static int getSomeVal() {
return new Random().nextBoolean() ? 1 : null;
}
терпит неудачу (обычно )во время выполнения. Попытка вернуть только null
также приведет к ошибке компиляции, поэтому я предполагаю, что есть что-то в наличии нескольких путей, что заставляет компилятор сделать вывод, что null
потенциально является автоматически упакованным int
? Почему javac не может скомпилировать оба случая с одной и той же ошибкой?