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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 821728010 中级黑马   /  2013-6-4 00:28  /  1147 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 821728010 于 2013-6-5 20:15 编辑

这段代码运行时为什么会报错?   

import java.lang.reflect.Constructor;


public class Bzsrsc {
        public static void main(String[] args)throws Exception {
               
//                A a = A.class.newInstance();
//                System.out.println(a.i);
                Constructor con = A.class.getConstructor();
                A a = (A)con.newInstance();
                System.out.println(a.i);
                }
        }
        


class A{
         
        int i = 1;
}        
        

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

4 个回复

倒序浏览
Class类中的newInstance()方法不带参数可以直接使用,而Constructor类中的newInstance()方法必须带参数,一般用来反射带参的构造器

点评

Constructor类中的newInstance()方法是可以不带参数的  发表于 2013-6-4 22:39

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 淡定

查看全部评分

回复 使用道具 举报
加油!
回复 使用道具 举报
A.class.getConstructor();此处你没有获取到构造方法,此方法只能获取到public修饰的构造方法;使用这个方法就能获取到A.class.getDeclaredConstructor()

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 神马都是浮云

查看全部评分

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