/ / Crear una lista genérica, donde el tipo de la lista se conoce solo en tiempo de ejecución - java, genéricos, tipos

Cree una lista genérica, donde el tipo de la lista se conoce solo en tiempo de ejecución: java, genéricos, tipos

Quiero generar una lista genérica donde el tipo de la lista se conoce solo en tiempo de ejecución (es el tipo del objeto que crea esa lista).

Descripción completa:

Quiero implementar esta funcionalidad en una clase abstracta, por lo que conozco la clase primaria antes del tiempo de ejecución.

No sé cómo hacer eso.

    Class myClass = getClass().getSuperclass();
LinkedList<myClass> list = new LinkedList<myClass>();

No funciona. ¿Algunas ideas?

Respuestas

3 para la respuesta № 1

Los genéricos son en gran medida una característica de tiempo de compilación, por lo que no tiene ningún significado en este contexto.

Solo puedes escribir

List list = new LinkedList();

Generalmente prefiero ArrayList si puedes usar eso. ;)


6 para la respuesta № 2

o simplemente puedes escribir:

    List<Object> list = new LinkedList<Object>();

0 para la respuesta № 3

Simplemente usar Non-Generics Lista de arreglo

ArrayList arrList = new ArrayList();

incluso puedes usar el <?>

Pensé usando el List Será bueno, ya que muestra el principio de "Program in Interface rather than implementation"


0 para la respuesta № 4

Otra opción sería parametrizar la clase abstracta con el tipo de la clase extendida. Esto es un poco sobre-diseñado, pero debería funcionar:

package test;

import java.util.ArrayList;
import java.util.List;

public class  AbstractListHolder<T> {

private List<T> list = new ArrayList<T>();

List<T> getList() {
return list;
}

}

class ListHolder extends AbstractListHolder<ListHolder> {

void doSomething() {
getList().add(this);
}

}