黑马程序员技术交流社区

标题: 求解啊,一个反射练习总是出异常,我都抛了啊,, [打印本页]

作者: 李晓俊老师    时间: 2012-2-29 10:26
标题: 求解啊,一个反射练习总是出异常,我都抛了啊,,
import java.lang.reflect.Field;


public class ReflectDemo2 {
        public static void main(String[] args) throws Exception
        {
                getFieldsDemo();
        }
        //解剖字节码文件,获取字段对象及其属性
        public static void getFieldsDemo() throws Exception
        {
                //1.获取字节码文件对象
                Class c = Class.forName("day13.Person");
                //通过Class类中的newInstance方法创建该类的字节码文件对象实例
                Object obj = c.newInstance();
                //2.通过字节码文件对象的方法getField,获取单个字段对象
                Field field = c.getField("id");
               
                Field[] f1 = c.getDeclaredFields();
                for(Field f : f1)
                {
                        System.out.println(f);
                }
                }

}
作者: 李晓俊老师    时间: 2012-2-29 10:27
Exception in thread "main" java.lang.InstantiationException: day13.Person
总是这个异常
作者: 李晓俊老师    时间: 2012-2-29 10:30
Object obj = c.newInstance();
把这一句注释掉就不会出异常了,,很是不懂啊,
作者: 田啸    时间: 2012-2-29 10:50
你检查下你的Person类,你必须有一个无参的构造函数才可以直接Class.forName().newInstance().
作者: 李晓俊老师    时间: 2012-2-29 10:58
汗,还真是没有无惨的构造函数啊.谢谢了
作者: 田啸    时间: 2012-2-29 11:01
呵呵,客气啥




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2