2011-06-23 47 views
1

這是我的問題。我想要一個具有私有構造函數的類,它可以使用多種靜態方法創建,就像Box.createHorizontalBox()一樣。當這個類使用泛型時,它變得複雜。具有私人構造函數的通用對象

請告訴我如何正確地做到這一點:

private WorkFlow(int _arrowSize) { 
    this.arrowSize = _arrowSize; 
    this.elements = new ArrayList<T>(); 
} 

public static WorkFlow<T> createHorizontalWorkFlow<T>(int _arrowSize) { 
    WorkFlow<T> workFlow = new WorkFlow<T>(_arrowSize); 
    workFlow.vertical = false; 
    return workFlow; 
} 

這不是工作:月食強調從createHorizontalWorkFlow<T>(int _arrowSize)int和給我的錯誤Syntax error on token(s), misplaced construct(s)

+0

爲什麼不從靜態方法返回任何東西? – BoltClock

+0

@BoltClock哎呀,編輯!我忘了複製一行... – SteeveDroz

回答

5

試試這個:

public static <T> WorkFlow<T> createHorizontalWorkFlow(int _arrowSize) { 
    WorkFlow<T> workFlow = new WorkFlow<T>(_arrowSize); 
    workFlow.vertical = false; 
    return workFlow; 
} 

你非常接近。剛剛在<T>錯誤的地方 - 你必須在返回類型之前聲明通用類型

+0

哇,我幾乎在那裏;-)非常感謝。就像'這個'一樣,這是一個tpyo。我糾正了它。 – SteeveDroz

+0

靜態「這個」警告刪除:)。另外,如果你覺得它是正確的,請「接受」我的答案 - 這樣問題就會顯示爲「已回答」,而且ppl不會繼續添加更多嘗試等等 - 哦,你已經完成了。 thx :) – Bohemian

+0

我即將到來,但你回答得太快,我不得不等待15分鐘;-) – SteeveDroz

相關問題