Processando...

Questões comentadas . Concursos Diversos de Java | 271370

#271370
Banca
. Bancas Diversas
Matéria
Java
Concurso
. Concursos Diversos
Tipo
Múltipla escolha
fácil

(1,0) 1 - 

A respeito do seguinte trecho de código Java, assinale a alternativa correta.

public class ExemploErro {
public static void exibir(Integer valor) {
System.out.println(“Valor inteiro: ” + valor);
}
public static void exibir(double valor) {
System.out.println(“Valor decimal: ” + valor);
}
public static void main(String[] args) {
exibir(null);
}
}

Comentários da questão

  • Hugo Gonzalez - 29/07/2025 às 18:53

    Análise: O método exibir está sobrecarregado com dois parâmetros:

    exibir(Integer valor) — recebe um objeto Integer (wrapper, pode ser null).

    exibir(double valor) — recebe um tipo primitivo double (não pode ser null).

    A chamada: exibir(null); passa null como argumento.

    O compilador precisa decidir qual método chamar.

    null pode ser atribuído a qualquer referência de objeto, mas não pode ser atribuído a tipos primitivos diretamente.

    O método exibir(double) espera um primitivo, portanto o null não pode ser convertido diretamente para double.

    O método exibir(Integer) aceita null pois Integer é uma classe (referência).

    Portanto, o compilador chama exibir(Integer) e imprime “Valor inteiro: null”.

    Sobre as alternativas: a) Errado. Não há ambiguidade, pois null não pode ser convertido para double.

    b) Errado. Integer é wrapper, double é primitivo, mas isso não impede a sobrecarga.

    c) Correto. O código compila e executa, imprime “Valor inteiro: null”.

    d) Errado. É permitido passar null para métodos com parâmetros objeto.

    e) Errado. null não é convertido para double automaticamente.

    ✅ Resposta correta: c) O código compila e executa normalmente, imprimindo “Valor inteiro: null”.