Desafio Parte 2

7 respostas
J

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:

7 Respostas

W

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

M

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:

E

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!

D

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

:???:

B

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

J

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!

J

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

É 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:

Criado 30 de junho de 2004
Ultima resposta 2 de jul. de 2004
Respostas 7
Participantes 7