pois bem, qual será a saída do código abaixo? e pq? … lembrando, nada de compilar! 
[code]class FooClass {
static String m(long i) { return "long"; }
static String m(Long i) { return "Long"; }
static String m(double i) { return "double"; }
static String m(Double i) { return "Double"; }
static String m(String i) { return "String"; }
public static void main ( String[] args )
{
System.out.print(
m( Long.parseLong( "1" ) )
);
}
}[/code]
o resultado sera “long”, pois Long.parseLong() retorna uma long (do tipo primitivo)…
afff… mas ta muito fácil assim! :tosco:
O retorno do método public static parseLong da classe wrapper Long tem como retono um tipo primitivo long, então o método sobreposto com a assinatura static String m(long i) sera elegido, logo a saída será long;
bah esse foi facil mesmo…
e o mauro ali deu uma explicaçao bunita neh?! hahahaha que coisa =) vc serve pra escrever livros kra =) fala bunito, parece o tanenbaum =)
cya!