枚举值,color.red与color.red.name()的区别

class test  

{

    public enum color{

        red, yellow, green

    };

public static void main (String[] args) throws java.lang.Exception

{

System.out.println(color.red);

System.out.println(color.red.name());

System.out.println((color.red).equals(color.red.name()));

}

}

这里的color.red和color.red.name()有什么区别啊?输出的值都为red,但判断关系是不相等,是他们的类不相等吗?

Catherine3479953
浏览 1516回答 2
2回答

Albatron_

这个因为枚举类型也是类,对应的red,green等都是color产生的对象,所以对象和对象比较(在没有重写equals方法的情况下)即使对应值相同,但因为对象不同所以判断还是不相等的
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java