当前位置:首页 > 通信资讯 > 正文

java 枚举valueof方法(java枚举values)

目录
  • 枚举类中的valueOf用法
    • 先创建一个BasicEnum的接口
    • 创建一个枚举类实现BasicEnum接口
  • 枚举类valueOf方法的疑问

    枚举类中的valueOf用法

    前言:今天遇到了一个枚举类的valueOf用法,遇到了一点问题,这里特例写一个demo来测试一下

    先创建一个BasicEnum的接口

    /** * @Author 徐志 * @date 2020/9/4 12:42 **/ public interface BasicEnum<L,V> { /** * get name * * @return */ L getName(); /** * get value * * @return */ V getValue(); }

    创建一个枚举类实现BasicEnum接口

    添加name和value属性

    /** * @Author 徐志 * @date 2020/9/4 12:38 **/ public enum Color implements BasicEnum<String,Integer>{ RED("a",0), GREEN("b",1), BLUE("c",2); private final String name; private final Integer value; Color(String name, Integer value) { this.name = name; this.value = value; } public String getName() { return this.name; } public Integer getValue() { return this.value; } }

    方式一:调用valueOf

    /** * @Author 徐志 * @date 2020/9/4 12:46 **/ public class TestEnum { @Test public void test(){ System.out.println(Color.valueOf("RED").getValue()); } }

    java 枚举valueof方法(java枚举values)

    方式二:调用valueOf

    /** * @Author 徐志 * @date 2020/9/4 12:46 **/ public class TestEnum { @Test public void test(){ System.out.println(Color.valueOf("a").getValue()); } }

    java 枚举valueof方法(java枚举values)

    比较上面两种调用valueOf的方法。发现通过name属性调用会报错。

    显示参数异常,查看枚举类的源码,找到valueOf方法

    java 枚举valueof方法(java枚举values)

    发现确实是根据枚举类的内容来调用valueOf方法,如果想使用name属性来实现valueOf的调用,我们需要重写这个valueOf方法

    枚举类valueOf方法的疑问

    枚举类中valueOf方法只有一个参数

    而Enum类中有两个参数,请问Enum实例类中的valueOf方法是从何处继承而来?

    答案:jvm进行编译的时候添加的

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。

    原文链接:https://blog.csdn.net/weixin_45119323/article/details/108409160

    如果您对该产品感兴趣,请填写办理(客服微信:xiaoxiongyidong)

    为您推荐:

    发表评论

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。