Ola pessoal estou com uma duvida basica, pode parecer um absurdo
para voces, mas estou iniciando na linguagem java.
Eu vi q podemos fazer um Dao Generico e fiz um, agora eu
queria saber se e possivl fazer um controle generico. asim:
no meu controle eu necessito instanciar uma classe Livros por ex
Qual o tipo do seu atributo? Object
o que adianta passar algo usando a tecnologia Generics se depois ele vai virar um Object?
Veja o que o Thingol escreveu.
o que muda é, que ao invés de criar uma nova instancia usando new, você busca esta instancia usando o método getInstance() que está presente na Classe: Class que é o seu argumento. Qual parâmetro passar para o método? SuaClasse.class
é estranho, mas é isso ai mesmo…
até
J
jeanmarcel
sim eu havia tebntado dakela forma mas veja
o seguinte codigo gera erro:
Ele fica com um x vermelho no eclipse nessa linha,
existe o metodo getClass(), newInstance(), sera q n e isso...
ainda vou precisar de um metodo q crie uma nova instancia
desse meu objeto, existe alguma outra maneira?
pelo que andei analisando tbm nao vai ser muito util
um controle generico, ja que cada classe tera
suas proprias acoes.
rodrigoallemand
É porque quando vc faz uma classe genérica, vc tem que passar qual atributo ela vai usar em tempo de execução, tendo em vista que T não existe no Java...
Exemplo...
public class MeuGenerico<T> {
private T objGenerico;
public MeuGenerico(Class<T> klass){
this.objGenerico = klass.newInstance();
}
public static void main(String args[]){
MeuGenerico<String> objString = new MeuGenerico<String>();
}
packagemeupacote.controle;publicclassTeste<T>{privateTobjGenerico;publicTeste(Class<T>klass){this.objGenerico=klass.newInstance();}publicstaticvoidmain(Stringargs[]){//colokei um parametroTeste<String>objString=newTeste<string>(String.class);}}
rodrigoallemand
Qual o erro?!?
Não seria um try e catch delimitando o newInstance()?!?
Ele levanta uma checkedException que não me lembro agora…
J
jeanmarcel
E resolveu, ehehehe.
Entao isso vai criar uma nova isntancia do meu objeto?
tal como Livros livro = new Livros();