Desafio Parte 2

E ae pessoal?

Nem preciso falar… mesmo assim vou… :grin:

Nem pensem em executar…

Qual será a saída… ou não vai ter saída, PORQUE?

public class Desafio extends java.lang.Object {
  
  public Desafio() {
    super();
  }
  
  public String RetornaStringNumero(Integer n) {
    if (n == null) {
      throw new RuntimeException("Parametro nulo.");
    } else {
      return n.toString();
    }
  }
  
  public String RetornaStringNumero(Double n) {
    if (n == null) {
      throw new RuntimeException("Parametro nulo.");
    } else {
      return n.toString();
    }
  }
  
  static public void main (String[] argumentos) {
    System.out.println(new Desafio().RetornaStringNumero(null));
  }
}

:dance:

Não executa nenhum dos metodos, pois null pode ser usado tanto para um como para o outro método que possui assinaturas diferentes. Talvez uma RunTimeException.

[]s, Welington B. Souza

bah q massa essa questão, nunca vi uma assim… eaheahhea, realmente, a chamada do método com null serve pras duas assinaturas, só nao sei dizer se vai dar erro em tempo de compilação, ou execução… :oops:

caraca! essa é sinistra!
nuca vicoisa igual!

public String RetornaStringNumero(Integer n) { 
public String RetornaStringNumero(Double n) { 

mas é metodo String com o parametro inteiro e double? acho q da erro!!
é isso!

8O
compilar eu acho q compila. pra mim eu acho q o problema eh saber qual dos metodos vai ser chamado :?:

:???:

Acho que não compila!
Pq o compilador não sabe qual método usar para esse parametor!

Bom, erro de compilação eu acho qeu nao da nao… sendo qeu sao passados dois objetos diferentes para cada método… embora esteja sendo passado o null na chamada do método… bom, achoqeu soh da um erro de RunTimeExcpetion…

mas o erro especifico eu nao sei qual seria…

Legal essa questão ai! =)

vou esperar um mais sabido responder =)

cya!

[quote=“Brainn”]Acho que não compila!
Pq o compilador não sabe qual método usar para esse parametor![/quote]

É isso mesmo…

Como o overload do método está relacionado a dois objetos (Integer e Double) e é passada a constante null, o compilador não saberá qual dos métodos chamar (pois este serveria para os dois)… como o Brainn disse…

É isso ae… :wink: