所以我有幾個'經理'類,例如GroupManager。所有這些經理都是單身人士。Java泛型,單例和靜態方法
使用此方法實例化:
private static GroupManager groupManager = null;
private GroupManager()
{
}
public static GroupManager Instance()
{
if (groupManager == null)
{
groupManager = new GroupManager();
}
return groupManager;
}
我想我應該開始,因爲他們有很多的複製方法來使用一些繼承。
每個Manager的Instance()方法是相同的。
所以對於繼承我可以做到這一點(顯然):
GroupManager extends Manager
是否有可能使用泛型使用相同的實例方法,所有的管理者,是這樣的:
public class Manager<E>
{
private static E instance = null;
public static E Instance()
{
if (instance == null)
{
instance = new E();
}
return instance;
}
}
我想這是有道理的:)
那麼你會做GroupManager.Instance()像正常。
Java泛型是沒有辦法的與C++模板相同!隨它吧!您永遠不能使用Java Generic分配對象(即調用new)。嘗試谷歌搜索「Java類型擦除」 – DwB
相關:http://stackoverflow.com/questions/1927789/why-should-i-care-that-java-doesnt-have-reified-generics – BalusC
經理 E是一個引用一個泛型類型。沒有簡單的方法來設置類來分配只在運行時才知道的類型的對象。裏德麥克的答案是我會嘗試的。 –
DwB