3
respostas

Li o fórum e ainda fiquei confuso.

Alguém teria um vídeo ou artigo com uma explicação bem detalhada?

Agradeço a atenção.

3 respostas

Olá, Diógenes

Entendo que você esteja confuso, Java pode ser um pouco complicado às vezes. Vou tentar esclarecer sua dúvida.

No exercício em questão, a resposta correta é que o código não compila ao tentar invocar o construtor. Isso ocorre porque o construtor do objeto String em Java não aceita um argumento nulo.

Aqui está um exemplo prático. Se você tentar executar o seguinte código:

String s2 = new String(null);

Você receberá um erro de compilação, pois o construtor da classe String não aceita um argumento nulo.

Agora, se você tentar algo como:

String s2 = new String("null");

O código será compilado e executado com sucesso, pois você está passando uma string "null", e não um valor nulo.

Espero que essa explicação tenha ajudado a esclarecer a sua dúvida. Lembre-se, a prática é a chave para o aprendizado, então continue tentando e testando diferentes códigos. Espero ter ajudado e bons estudos!

Opa, grato pelo retorno.

Eu fiquei na dívida pq no vídeo e no exercício ele fala que o JAVA não sabe para quem atribuir o valor nulo e por isso não compila.

Você trás que a explicação que a questão está em que o construtor é quem não aceita o valor nulo como argumento. No caso, mais fácil de entender se for apenas isso. rs

Agradeço mais uma vez a explicação. Grande abraço.

Fico feliz em poder ajudar a esclarecer sua dúvida! A linguagem Java é conhecida por sua rigorosa tipagem estática, e situações como essa, em que você tenta criar um objeto String com um valor nulo como argumento, podem ser um pouco confusas.

Na verdade, a explicação do construtor da classe String não aceitar um valor nulo como argumento é uma das razões para o código não compilar. No entanto, a explicação dada no vídeo também faz sentido, pois o compilador não consegue determinar qual construtor sobrecarregado da classe String deve ser usado quando você passa um valor nulo, o que pode levar a ambiguidades.

Em qualquer caso, é importante entender que essa é uma particularidade da linguagem Java e que é importante seguir as regras de tipagem e construção de objetos da linguagem para evitar erros de compilação.