tengo una clase de la siguiente manera:método genérico estática difícil con el tipo de retorno genérica que a su vez podría ser un genérico
public class MyConverter {
public <T> T convert (Object o, String typeidentifier, T dummy)
{
... do some conversions such as a java array to an ArrayList or vice versa
... based on a typeidentifier syntax similar to Class.getName() but which
... embeds information about generic subtypes
}
}
y quieren ser capaces de hacer algo general, de esta manera:
int[] ar = {...};
ArrayList<Integer> dummy = null;
Integer elem = MyConverter.convert(ar, "java.util.ArrayList<Integer>", dummy)
.get(15);
Es decir, el T
en convertir puede ser una instancia genérica, y encontré que para lograr este objetivo, tengo que pasar un dummy totalmente tipeado, ya que ArrayList.class
no le dará al compilador de Java suficiente información de que es un ArrayList<Integer>
si usé Class<T> dummycls
en lugar de T dummy
.
¿Echo de menos algo? ¿Hay alguna forma de escribir e invocar convert sin requerir un dummy?
¿Qué estás tratando de lograr? Parece ser demasiado complicado. – aglassman
¿Quieres hacer algo como 'ArrayList .class'? Puede usar un molde: '(Class >) (Object) ArrayList.class'. Sin embargo, tampoco parece demasiado elegante. –