问题描述如下:
有3个类A和B和C,他们父类不同但都可以通过new来实例化,现在想通过另一个类F,用统一的途径来实例化他们,比如通过类似F.getinstance(“A”)就可以生成A的一个实例;F.getInstance(“C”)就可以产生C的实例。请问F的代码怎么写?
希望能得到大虾们的恢复!
有3个类A和B和C,他们父类不同但都可以通过new来实例化,现在想通过另一个类F,用统一的途径来实例化他们,比如通过类似F.getinstance(“A”)就可以生成A的一个实例;F.getInstance(“C”)就可以产生C的实例。请问F的代码怎么写?
希望能得到大虾们的恢复!
public statiic Object getInstance(String cn){
Class c=Class.forName(cn);
return c.newInstance();
}
}
但是这种情况你最好对三个类ABC都分别创建一个Factory类
用于生成ABC的实例
public statiic Object getInstance(String cn){
Class c=Class.forName(cn);
return c.newInstance();
}
}
大家说的都没错
反正是 return Class.forName(str).newInstance();
希望上面的朋友对自己的意见能够提出个完全符合题意的测试用例,谢谢大家!
F.getinstance(“A”),方法名和参数类型也都固定了,因此也不可能用通过重载来实现.
Java反射技术?管你什么技术都没用,语法要求再那摆着呢.
楼主别被什么名词忽悠了Class.forName(str).newInstance();这就是反射技术.
楼主要求无法实现.
我今天在线求教
B:java不能多继承的,你用接口吧
A:用接口多麻烦,方法还要重新写,我就想继承自多个类
B:java不能多继承,语法就是这样要求的啊
A:是不是还有别的技术实现那?
B:你别用java了...
f.getInstance("A")得到的类型是Object,能转换成A??