日期:2014-05-20  浏览次数:20774 次

寻求答案:在一个类中,如何统一实现别的类的实例?????
问题描述如下:
有3个类A和B和C,他们父类不同但都可以通过new来实例化,现在想通过另一个类F,用统一的途径来实例化他们,比如通过类似F.getinstance(“A”)就可以生成A的一个实例;F.getInstance(“C”)就可以产生C的实例。请问F的代码怎么写?
希望能得到大虾们的恢复!


------解决方案--------------------
return Class.forName(str).newInstance();
------解决方案--------------------
class F{
public statiic Object getInstance(String cn){
Class c=Class.forName(cn);
return c.newInstance();
}
}
------解决方案--------------------
Java反射技术
------解决方案--------------------
上面的方法都很好
但是这种情况你最好对三个类ABC都分别创建一个Factory类
用于生成ABC的实例
------解决方案--------------------
建议可以试一下:

class F{
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();这就是反射技术.
------解决方案--------------------
好象这个功能单靠java不能实现