Olá.
Existe um modo de criar uma array de um objeto com generics ?
Algo assim:
class Classe<T> {
public Classe(Class<T> class,String name){
}
}
class Teste{
public static void main(String...args){
Classe<String>[] classes = {new Classe<String>(String.class,"String"),new Classe<String>(String.class,"String") };//Quero usar o {} para declarar os itens do array assim que crialo
//Sei que posso fazer isso
Classe<String>[] classes = new Classe<String>[2];
classes[0] = new Classe<String>(String.class,"String");
classes[1] = new Classe<String>(String.class,"String");
}
}
O segundo modo funciona, mas gostaria de saber se existe um modo que seja o mais proximo possivel da minha primeira expressão.
Meu exemplo real é utilizar algo assim:
no construtor da classe que quero.
public class SelectTable2<T> //...
public SelectTable2(FieldResolver<T>[] cols,List<T> list,ObjectSelectListener listener){
//..
//Construtor da classe FieldResolver
public class FieldResolver<T>
public FieldResolver(Class<T> clazz, String field, String name){
//..
//Eu quis usar o Generics para evitar um descuido como esse
new SelectTable2(new FieldResolver[]{new FieldResolver(String.class,"",""),new FieldResolver(Double.class,"","")},new ArrayList<Integer>(),null);
//Mas com o Generics eu gostaria de usar a mesma estrutura no construtor
new SelectTable2<Pessoa>(new FieldResolver<Pessoa>[]{new FieldResolver<Pessoa>(Pessoa.class,"nome","Nome"),new FieldResolver<Pessoa>(Pessoa.class,"idade","Idade")},new ArrayList<Pessoa>(),null);
//Com o generics ele não deixa eu colocar nada diferente do que foi colocado na classe SelectTable2.
//O unico erro é isso: new FieldResolver<Pessoa>[]{new FieldResolver<Pessoa>(Pessoa.class,"nome","Nome"),new FieldResolver<Pessoa>(Pessoa.class,"idade","Idade")}