java 运用反射时,为什么要显示的声明默认构造方法
本帖最后由 zwm0800 于 2013-01-25 16:48:15 编辑
更位大神帮忙看一下,为什么在用方式二的时候需要显示的声明默认构造方法?????
import java.lang.reflect.Field;
public class Test
{
public Object test(Object object) throws Exception
{
Class<?> classType = object.getClass();
// 方式一:
Object sample = Sample.class.newInstance();
// 方式二,为什么需要显示的声明默认构造方法:
//Object sample = classType.getConstructor(new Class[] {}).newInstance(new Object[] {});
Field field = classType.getDeclaredField("name");
field.set(sample, "tom");
return sample;
}
public static void main(String[] args) throws Exception
{
System.out.println(new Test().test(new Sample()));
}
}
class Sample
{
String name;
// public Sample()
// {
//
// }
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String toString()
{
return this.name;
}
}
java
反射
------解决方案--------------------你在调用无惨构造函数,他当然需要存在