多平台统一管理软件接口,如何实现多平台统一管理软件接口
433
2022-09-28
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~