根据构造函数来生成对象啊
其中initargs就是你这个对象的构造函数的参数,如果你的构造函数是无参的,你就一个也不要传,这个列表和你构造函数的参数列表是一样的,只不过,当是基本数据类型传入的时候,需要一个包装类来包装它,但是JDK1.5也可以直接传入基本数据类型了,因为编译器会帮你自动包装或者解包
一语惊醒梦中人,版主真是理解的深透,你这样一说,比书上讲得通俗易懂多了,谢谢!另外想请你帮我分析一下下面这段代码!
import java.lang.reflect.*;
class ClassTest
{
public static void main(String[] arg)
{
if (arg.length!=1)
{
return;
}
try
{
Class c=Class.forName(arg[0]);
Constructor[] cns=c.getDeclaredConstructors();
Class[] params=cns[0].getParameterTypes();
Object[] paramevalue=new Object[params.length];
for(int i=0;i<params.length;i++)
{
if(params[i].isPrimitive())
{
paramevalue[i]=new Integer(i+10);
}
}
Object o=cns[0].newInstance(paramevalue);
Method[] me=c.getDeclaredMethods();
for(int j=0;j<me.length;j++)
{
System.out.println(me[j]);
}
me[0].invoke(o,null);//此处我的想法是想调用Point类中的output()方法,不知null处该如何写才可以调用.
} //反正现在这样运行会抛出错误.
catch(Exception e)
{
}
}
}
class Point
{
int x;
int y;
public Point (int x,int y)
{
System.out.println("x="+x+";y="+y);
}
void output()
{
System.out.println("y=");
}
}
上面红色地方