Alguém teria um vídeo ou artigo com uma explicação bem detalhada?
Agradeço a atenção.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Alguém teria um vídeo ou artigo com uma explicação bem detalhada?
Agradeço a atenção.
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.