A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Object obj = c.newInstance();
把这一句注释掉就不会出异常了,,很是不懂啊,
回复 使用道具 举报
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);
                }
                }

}

5 个回复

倒序浏览
Exception in thread "main" java.lang.InstantiationException: day13.Person
总是这个异常
回复 使用道具 举报
你检查下你的Person类,你必须有一个无参的构造函数才可以直接Class.forName().newInstance().

评分

参与人数 1技术分 +2 收起 理由
老罗 + 2

查看全部评分

回复 使用道具 举报
汗,还真是没有无惨的构造函数啊.谢谢了

评分

参与人数 1技术分 +1 收起 理由
老罗 + 1 不错

查看全部评分

回复 使用道具 举报
呵呵,客气啥
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马