그래서 GroupManager와 같은 몇 가지 'Manager'클래스가 있습니다. 이 모든 관리자들은 싱글 톤입니다.Java generics, singletons 및 static methods
인스 턴싱이 방법을 사용 : 내가 생각하고
private static GroupManager groupManager = null;
private GroupManager()
{
}
public static GroupManager Instance()
{
if (groupManager == null)
{
groupManager = new GroupManager();
}
return groupManager;
}
나는 그들이 복사 방법을 많이 가지고 일부 상속을 사용하기 시작한다.
각 Manager의 Instance() 메소드는 동일합니다.
그래서 상속 난 (분명히)이 작업을 수행 할 수 있습니다
public class Manager<E>
{
private static E instance = null;
public static E Instance()
{
if (instance == null)
{
instance = new E();
}
return instance;
}
}
내 생각 :
GroupManager extends Manager
이 가능, 무언가 같이 모든 관리자에 대해 같은 인스턴스 메서드를 사용하여 제네릭을 사용하는 것입니다 그게 말이 되네 :)
그런 다음 GroupManager.Instance()를 정상적으로 수행 할 것입니다.
자바 제네릭은 어떠한 방식에 사용을 놓치지 않는 경우에만 미세 있도록 정적 컨텍스트에서 사용되는 C++ 템플릿과 동일! 가자! Java Generic을 사용하여 객체를 할당 할 수는 없습니다 (즉, 새로 호출). "Java Type Erasure"에 대한 Google 검색을 시도하십시오. – DwB
관련 : http://stackoverflow.com/questions/1927789/why-should-care-that-java-doesnt-have-reified-generics – BalusC
관리자 E is a 제네릭 형식에 대한 참조. 런타임에만 알 수있는 유형의 객체를 할당하도록 클래스를 설정하는 간단한 방법은 없습니다. Reid Mac의 대답은 제가 시도 할 것입니다. –
DwB