Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Por que compila? Chance do primitivo int retornar null.

Não percebi como o código compila, se existe a opção do int b ser null em caso da comparação ser verdadeira.

public class Test {

    public static void main(String[] args) {
        int a = Integer.parseInt("10",2);
        int b = a == 10 ? null : 3;
        System.out.println(a + b);
    }
}

Ali estamos trabalhando com números primitivos, portanto imagino que já na compilação seja verificada a igualdade. Está correto o pensamento?

2 respostas
solução!

Em tempo de runtime pode ser que aconteça um NullPointerException, mas como a nível de compilação não dá para garantir, o compilador Java prefere deixar passar e não dar erro de compilação

Entendi. A simples possibilidade de não dar NullPointerException é o bastante para o compilador deixar passar. Perfeito.