2014-11-20 33 views
-1

我有不同的抽象類A的子類,它們都應該實現getInstance方法。該方法檢查一個實例是否已經以xml格式(XStream library)保存在磁盤上並加載它或創建新實例。抽象和靜態上下文中的泛型

public MySubclassB extends A { 

... 

private static SettingsManager<MySubclassB> manager; 
private static MySubclassB instance; 

private MySubclassB() { 
    manager = new SettingsManager<MySubclassB>(); 
} 

public static MySubclassB getInstance() { 
    if (instance == null) { 

     MySubclassB tmp = new MySubclassB(); 

     // loadObject returns either tmp if no instance was saved on disc or the saved object 
     if ((instance = manager.loadObject(tmp, MySubclassB.class.getCanonicalName())).hashCode() == tmp.hashCode()) { 
      setUpObjectFirstTime(); 
     } 
    } 
    return instance; 
} 
} 

是否有可能在抽象類A中做所有這些,或者我應該複製所有子類中的代碼?

回答