java 枚举类中的valueOf用法说明

网友投稿 648 2022-12-09

java 枚举类中的valueOf用法说明

java 枚举类中的valueOf用法说明

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

枚举类中的valueOf用法

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

先创建一个BasicEnum的接口

/**

* @Author 徐志

* @date 2020/9/4 12:42

**/

public interface BasicEnum {

/**

* 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{

RED("a",0),

http://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());

}

}

方式二:调用valueOf

/**

* @Author 徐志

* @date 2020/9/4 12:46

**/

public class TestEnum {

@Test

public void test(){

System.out.println(Color.valueOf("a").getValue());

}

}

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

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

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

枚举类valueOf方法的疑问

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

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

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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持luNHeSuI我们。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java数据结构与算法之单链表深入理解
下一篇:解决spring集成redisson踩过的坑
相关文章

 发表评论

暂时没有评论,来抢沙发吧~