Duvida rapida sobre Generics

3 respostas
Diabo_Loiro

Senhrores tem o codigo a abaixo que compila e executa. eu não entendi a sintaxe deste metodo.

import java.util.*;
import static java.lang.System.*;


public class Test {
	public static void main(String [] args) {
     Test t=new Test();
     t.go(1);
     out.println("ok");
 }
	<A extends alpha> alpha go(int i){
		if(i==0)return new alpha();
		return new beta();
	}
	
 }
class beta extends alpha{}
class alpha{}

este

<A extends alpha> alpha go(int i){
		if(i==0)return new alpha();
		return new beta();
	}

dado que é o mesmo efeito deste

alpha go(int i){
		if(i==0)return new alpha();
		return new beta();
	}

Há algum beneficio pois realmente não vi ultilidade.

3 Respostas

tnaires

O método go() é um método genérico. O parâmetro <A extends alpha>, declarado antes do valor de retorno, é declarado para ser utilizado dentro do método. Só que nesse caso o parâmetro não está sendo utilizado dentro do mesmo, por isso que é válido retirá-lo.

Diabo_Loiro

blz vlw mais so para confirmar os parametros de tipo em metodos genericos nao podem usar wild cards na declaração mas esse tipo de expressão é valida neh

ctosin

Olá,

Sim, essa expressão é válida. Pode ser utilizada sem qualquer problema.

Abraço

Criado 10 de dezembro de 2009
Ultima resposta 15 de dez. de 2009
Respostas 3
Participantes 3