Labios de octubre:
Tengo una clase java Jist
que tiene dos campos, public final Object type
y public Object[] content
. En el constructor para la Jist
quiero tomar en una Object
y obtener su tipo, entonces inicializar content
con algún número de ranuras vacías de ese tipo. Esta es una de las varias soluciones que he probado, y el error que estoy recibiendo actualmente se encuentra en la inicialización real de la matriz:
public class Jist{
public final Object type;
public Object[] content;
public Jist(Object type){
this.type = type.getClass();
class myType extends Jist{
Class c = super.type.getClass();
public Class getType(){
return c;
}
};
content = new myType.getType()[4];
}
}
Elliott fresca:
Hacer Jist
genérica de algún tipo T
. Pasar el Class<T>
en el constructor. uso Array.newInstance(Class<?>, int)
como
public class Jist<T> {
public final Class<T> type;
public T[] content;
public Jist(Class<T> cls) {
this.type = cls;
content = (T[]) Array.newInstance(type, 4);
}
}