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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

fatlv123456

初级黑马

  • 黑马币:22

  • 帖子:17

  • 精华:0

© fatlv123456 初级黑马   /  2014-4-24 20:00  /  885 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 fatlv123456 于 2014-4-27 19:32 编辑

public static void main(String[] args) {
                TestE.valueOf("test").showE();//不报错
                TestE.test;//报错
               
               
        }
        
        public enum TestE{
                test(3){
                        public void showE(){
                                System.out.println(this);
                        };
                };
                private TestE(int value){
                        System.out.println("the value is:" + value);
                };
                public void showE(){};
        }

如上程序所示,枚举类中定义了有参数的构造方法,然后有一个test(3)的实例,在main方法中为什么直接.test会错而valueOf("test")就不错呢?

3 个回复

倒序浏览
因为 TestE.test;这个是枚举对象,但是没有引用指向它,也就说需要引用接收它、
不然会报赋值表达式不完整的错
只需要添加一个引用指向它即可,如下:
  1.         public static void main(String[] args) {

  2.                 TestE.valueOf("test").showE();//不报错
  3.                 TestE e = TestE.test;//不报错
  4.         }
复制代码

评分

参与人数 1黑马币 +2 收起 理由
fatlv123456 + 2 赞一个!

查看全部评分

回复 使用道具 举报
NNERO 发表于 2014-4-24 21:06
因为 TestE.test;这个是枚举对象,但是没有引用指向它,也就说需要引用接收它、
不然会报赋值表达式不完整 ...

怎么关闭提问啊 我到处都找不到关闭的按钮
回复 使用道具 举报
fatlv123456 发表于 2014-4-27 18:43
怎么关闭提问啊 我到处都找不到关闭的按钮

一楼,左下角,有几个按钮是灰色的,要鼠标移过去才变亮,有个编辑 点击 设置为提问结束即可
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马