关于动态实例化类的方法,如果能够带参数实例化????

YYSAM 2006-07-19 06:14:29
如题,现在有

Class.forName("某某类名").newInstance();

只容许不带任何参数的构造函数类.

现在我知道要实例化的类名了,也知道参数的值了,怎么构造这个类呢?他只有一个带参数的构造函数阿.
...全文
313 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jobs002 2006-07-20
  • 打赏
  • 举报
回复
收藏
YYSAM 2006-07-19
  • 打赏
  • 举报
回复
哦,谢谢,我也看到Constructor类了,不过没深研究。楼上的方法很好,谢谢了。

在说一次谢谢了!呵呵,spring我也在看,不过好像都是CGLIB生成的吧,哪个包没怎么看,不知道怎么生成的。
didoleo 2006-07-19
  • 打赏
  • 举报
回复
大概的方向是如此
didoleo 2006-07-19
  • 打赏
  • 举报
回复
package com.didoleo.test;

public class MyClass {

public MyClass(){

}

public MyClass(int x,int y){

}

public MyClass(double x,double y){

}

public MyClass(String x,String y){
System.out.println(x+" "+y);
}

}



/////////////////////


package com.lihongtu.test;
import java.lang.reflect.*;
public class TestCon {

public static void main(String[] args) {

try {
Constructor[] cons = MyClass.class.getConstructors();
if (cons != null && cons.length > 0) {
MyClass obj = (MyClass) cons[2].newInstance(new Object[] {
new String("hello"), new String("didoleo")});
}

} catch (Exception e) {
e.printStackTrace();
}

}

}


//要注意以下的是:MyClass 中有4个构造函数,其中public MyClass(String x,String y)
算是第3个构造函数,因此cons[2] 下标用的是 "2" ,这个我是凑出来的.
jobs002 2006-07-19
  • 打赏
  • 举报
回复
等待答案
infowain 2006-07-19
  • 打赏
  • 举报
回复
这是Spring提供的功能之一

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧