[紧急求救]关于动态创建对象的问题

lsj 03-03-16
    

Class c1 = Class.forname(classname);
Object ob = c1.newInstance();
这种方法只能创建有无参数构造函数的类的实例,但我的类只有带参数的构造函数(得由运行时传入对象参数),所以无法用这种方式

显然,这里应该用到reflect机制,可我就是看不明白javadoc该如何去做,请各位帮帮忙~~~~~~~~~

    

banq
2003-03-17 21:31

你使用setXXX传入参数可以吗?

Jevang
2003-03-18 03:32

Class c1
try {
parameterTypes = new Class[4];
args = new Object[4];
parameterTypes[2] = Class.forName("Class1"); //$NON-NLS-1$

parameterTypes[1] = parameterTypes[2];
parameterTypes[0] = Class.forName("java.lang.String"); //$NON-NLS-1$
parameterTypes[3] = Class.forName("AnotherClass"); //$NON-NLS-1$

cs = boClass.getConstructor( parameterTypes ); //$NON-NLS-1$
// filter, sorter, session
args[0] = boName;
args[1] = filter;
args[2]= sorter;
args[3]= aSession;
cs.newInstance( args );

}

lsj
2003-03-18 11:57

我的应急办法是用了setXXX方法,虽然是在抽象类中,但总觉得封装得不太好。
谢谢Jevang!

banq
2003-03-18 21:24

Jevang能稍微就你的例子讲解一下的你如何动态创建对象并且传递参数?

2Go 1 2 下一页