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

Porque dar erro ao passar null no construtor da String

class A {
    public static void main(String[] args) {
        String s = null;
        String s2 = new String(s);
        System.out.println(s2);
    }
}

Acredito que dar NullPointerException na chamada do System.out.prinln(s2), pois por padrão o método citado chama toString, e como está nulo o método não existe. A resposta dada no exercício é que dá erro em String s2 = new String(s).

3 respostas

Oi Delmo, vc chegou a rodar o exemplo? O construtor da string vai reclamar do parâmetro nulo.

Não. Gostaria de uma explicação "científica". Obrigado.

solução!

Aqui está o construtor da classe String:

    public String(String original) {
        this.value = original.value;
        this.hash = original.hash;
    }

Se vc passar null, a classe string vai tentar acessar o atributo value e isso vai gerar o NullPointer.