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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 柏涛 中级黑马   /  2014-2-19 19:21  /  831 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请看程序 为什么会报错?
package junereflect624;
import java.lang.reflect.Constructor;
enum Color{
RED,BLUE,GREEN;
private Color(){
}
}
public class EnumDemo8 {
public static void main(String[] args) throws Exception {
Class<Color> c = Color.class;
Constructor<Color> con = c.getDeclaredConstructor();Color co = (Color) con.newInstance();
System.out.println(coSystem.out.println(c.isEnum());
}
}

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

1 个回复

倒序浏览
目前发现通过反射实例枚举对象会报错“Cannot reflectively create enum objects”不知道有没有方法
好象只能找到一个构造方法Color(java.lang.String,int),且用这个方法实例对象的时候会报上面的错误
                Constructor[] constructors = c.getDeclaredConstructors();
                for(Constructor constructor:constructors){
                        System.out.println(constructor);   //会打印出Color(java.lang.String,int)
                }
                Constructor<Color> con = c.getDeclaredConstructor(String.class, int.class);
                con.setAccessible(true);
                Color co = (Color) con.newInstance("RED",0); //用这个构造方法实例对象也行不通,报错

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

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