Passar parâmetro null em método. Qual sobrecarga será escolhida?

 
 

O compilador tende a chamar o método que leva o argumento mais específico ao passar o parâmetro como ‘null’.

String é mais especifico que Object.

 
 

 

public class Teste {

public static void main(String[] args){        

meth(null);

}        

static void meth(Object o){System.out.println(“object”);}

static void meth(String s){System.out.println(“string”);}

}

javac: ok

Output:

string

 
 

 

 
 

No caso abaixo, o compilador não consegue decidir entre chamar o método que contem o parâmetro String ou Integer.

 

 

 

public class Teste {

public static void main(String[] args){        

meth(null);

}        

static void meth(Object o){System.out.println(“object”);}

static void meth(String s){System.out.println(“string”);}

static void meth(Integer i){System.out.println(“integer”);}

}

javac:

Teste.java:3: reference to meth is ambiguous, both method meth(String) in Teste and method met

h(Integer) in Teste match

meth(null);

^

1 error

Anúncios
Esta entrada foi publicada em Java com as etiquetas , . ligação permanente.

Uma resposta a Passar parâmetro null em método. Qual sobrecarga será escolhida?

  1. Pingback: Tweets that mention Passar parâmetro null em método. Qual sobrecarga será escolhida? | Pedro Abs -- Topsy.com

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s