Não da porque os tipos genericos não “existem” depois de compilados, é algo que existe só para ajudar a programar hehe mesmo porque, fazendo T = new T(), vc naum saberia se o tipo T tem um construtor sem parâmetros dessa forma.
Obriga ter algo a mais no codigo, passar o tipo generic por parâmetro, a vantagem eh vc ter um getT() personalizado (varia de acordo com o tipo generic), mas mesmo assim a classe do tipo T precisa ter um construtor sem parâmetros (dai o porque de colocar ela como sendo algo extends Base, ja que Base tem esse contrutor)
E
eloimendesPJ
Muito obrigado luBS, era isso mesmo que eu precisava!
Valeu!
L
luBSPJ
Sua outra duvida la é a mesma dessa, uma sugestão é vc fazer algo parecido com isso
abstractclassPai<T>{publicTt;publicPai(Class<T>clazz){try{t=clazz.newInstance();}catch(InstantiationExceptione){e.printStackTrace();}catch(IllegalAccessExceptione){e.printStackTrace();}}protectedTgetT(){returnt;}abstractvoidfazAlgo();}classFilhaStringextendsPai<String>{publicFilhaString(){// ele te obriga a criar esse construtorsuper(String.class);}@OverridevoidfazAlgo(){System.out.println(getT().getClass().getName());}}classFilhaGenerica<T>extendsPai<T>{publicFilhaGenerica(Class<T>clazz){// ele te obriga a criar esse construtorsuper(clazz);}@OverridevoidfazAlgo(){System.out.println(getT().getClass().getName());}}publicclassTeste{publicstaticvoidmain(String[]args){newFilhaString().fazAlgo();newFilhaGenerica<String>(String.class).fazAlgo();newFilhaGenerica<Teste>(Teste.class).fazAlgo();}}
Da mesma forma, como estou usando newInstance o tipo generico T precisa ter um construtor sem parâmetros (por exemplo não funciona para Integer pois Integer não tem esse construtor, da para fazer o mesmo esquema de usar uma extends class Base que tem esse construtor para funcionar e usar um padrão chamado Adapter para adaptar outras classes que não extendam Base). Nesse exemplo, a classe FilhaString é mais simples de usar, mas ela só serve para String (fixo no construtor dela), já FilhaGenerica serve para tudo, inclusive criar uma filha igual a filha string.