某个类的方法代码如下(为节省空间,我在这贴的省略了异常处理)
public Showable getInstance(String key,Object...args) {
p.loadFromXML(new FileInputStream("properties.xml"));
Class<Showable> c =(Class<Showable>) Class.forName(p.getProperty(key));
Class[] toa= new Class[args.length];
for(int i=0;i<args.length;i++)
{
toa[i]=args[i].getClass();
}
Constructor<Showable> show = c.getConstructor(args.getClass());
return show.newInstance(args);
}
我要从一个XML配置文件里,通过某一个兼职,取出某个类的全路径,用这个全路径去实例化一个对象,但构造函数是不唯一的,所有我使用了可变参数,但麻烦来了,倒数第二句,是根据这可变参数里每一个参数的Class对象作为参数,取出我要调用的相应构造方法,如何实现呢?
我试过以下方法:
1,如代码所示,直接填args.getClass,结果不行
2,用数组toa作为参数,结果也不行
我该怎么办啊
------解决方案--------------------------------------------------------
这还真不能怪java
首先java类库可以做到,但是如果假设有
Person(String,Integer)
Person(String,int)
该找哪个好?这就涉及一个查找顺序的问题了,会给编程人员带来困惑以及一些微妙的错误