Así que tengo algunas clases de 'Administrador', por ejemplo GroupManager. Todos estos gerentes son solteros.genéricos de Java, singletons y métodos estáticos
El uso de este método para la creación de instancias:
private static GroupManager groupManager = null;
private GroupManager()
{
}
public static GroupManager Instance()
{
if (groupManager == null)
{
groupManager = new GroupManager();
}
return groupManager;
}
Estoy pensando que debería empezar a utilizar alguna herencia, ya que tienen una gran cantidad de métodos copiados.
Los métodos de Instance() para cada administrador son los mismos.
Así que para la herencia que pueda hacer esto (obviamente):
GroupManager extends Manager
¿Es posible el uso de los genéricos para utilizar el mismo método de instancia para todos los gerentes, algo así como:
public class Manager<E>
{
private static E instance = null;
public static E Instance()
{
if (instance == null)
{
instance = new E();
}
return instance;
}
}
pienso eso tiene sentido :)
Entonces, usted haría GroupManager.Instance() como normal.
Java genéricos son de ninguna manera la ¡lo mismo que las plantillas de C++! ¡Déjalo ir! Nunca puede asignar un objeto (es decir, llamar nuevo) utilizando un Java Generic. Pruebe una búsqueda en Google de "Java Type Erasure" – DwB
Relacionados: http://stackoverflow.com/questions/1927789/why-should-i-care-that-java-doesnt-have-reified-generics – BalusC
Manager E es un referencia a un tipo genérico No hay una forma simple de configurar una clase para asignar objetos de un tipo que solo se conoce en tiempo de ejecución. La respuesta de Reid Mac es lo que probaría. –
DwB