我的特定问题是,我想在基类中创建一个静态方法,该方法将子类的实例保存在文件中。基类中的另一个静态方法将检索数据并重新创建子类的实例。
除了我需要在基类的静态方法中创建子类的实例的策略之外,所有这些都可以正常工作。请在下面查看我的意思。
因此,通常的问题是在Java中,如何从超类的Static方法中创建子类的实例。
class Base
public static Void saveAllInstances(){
saveAttributesofAllInstancesInFile(); // this works
}
public static Void retrieveAllInstances(){
destroyAllInstances(); // this works
getInstanceAttributesFromFile(); // this works and returns e.g. ArrayList<HashMap>
for( instanceAttributes : retrievedInstances ){
// Here is the part I cant figure out: I want to create an instance of
// the subclass here
sub = new Sub();
sub.setAttributes(instanceAttributes); //this works
}
}
class Sub extends Base{
}
使用工厂模式可以正常工作。并在伪代码中看起来像这样:
class MainFactory{
protected Worker makeWorker(){
return new Worker();
}
public createIntanceOfSubworker(){
Worker i = makeWorker()
}
}
class SubFactory extends MainFactory{
@override
protected SubWorker makeWorker(){
return new SubWorker();
}
}
class Worker{
}
class SubWorker extends Worker{
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句