本帖最后由 李会成 于 2013-2-20 16:28 编辑
更位大神帮忙看一下,为什么在用方式二的时候需要显示的声明默认构造方法?????- 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;
- }
- }
复制代码 |