我有一個抽象類,它具有創建該類的新實例的共享方法。我不想創建實際的抽象類的新實例(反正你不能這樣做),而是實現實現子類。從java中的類中實例化同一類的對象
爲了做到這一點,我這樣做:
constructor = this.getClass().getConstructor(String.class,String.class);
Object[] params = new Object[2];
params[0] = "one";
params[1]= "two";
Object piece = constructor.newInstance(params);
有沒有做到這一點
5系似乎並不認爲羅嗦... – bdares 2011-04-04 01:20:27
除非你正在尋找DI框架,比如Spring或Weld,我不認爲有更好的方法來做到這一點。構造函數特定於實現類,不能通過接口進行概括。如果你不喜歡這種模式,我可以建議你創建一個返回抽象類型的「newInstance」方法。這會將子類帶入用於實例化的接口契約。 – SplinterReality 2011-04-04 01:23:16
@bdares - 他被排除在異常處理之外... – 2011-04-04 01:27:38