重写enum的valueof方法等
2019独角兽企业重金招聘Python工程师标准>>>
enum 对象的常用方法介绍
int
compareTo(E o)
比较此枚举与指定对象的顺序。
Class<E>
getDeclaringClass()
返回与此枚举常量的枚举类型相对应的 Class 对象。
String
name()
返回此枚举常量的名称,在其枚举声明中对其进行声明。
int
ordinal()
返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。
String
toString()
返回枚举常量的名称,它包含在声明中。
static
<T extends Enum<T>> T valueOf(Class<T> enumType, String name)
返回带指定名称的指定枚举类型的枚举常量。
package test;public class EnumTest {public enum Color {RED(255, 0, 0), BLUE(0, 0, 255), BLACK(0, 0, 0), YELLOW(255, 255, 0), GREEN(0, 255, 0);// 构造枚举值,比如RED(255,0,0)private Color(int rv, int gv, int bv) {this.redValue = rv;this.greenValue = gv;this.blueValue = bv;}private int redValue; // 自定义数据域,private为了封装。private int greenValue;private int blueValue;public static final Color[] values=Color.values();public static Color valueOf(int i) {return values[i];}public String toString() { // 覆盖了父类Enum的toString()return super.toString() + "(" + redValue + "," + greenValue + "," + blueValue + ")";}}public enum ColorType{Red(Color.RED),Blue(Color.BLUE),Black(Color.BLACK),Yellow(Color.YELLOW),Green(Color.GREEN);private Color colorId;private ColorType(Color colorId) {this.colorId=colorId;}public static ColorType[] a=ColorType.values();public static ColorType valueOf(int i) {return a[i];}public String toString() {return super.toString()+"-------------->"+colorId.toString();}}public static void main(String args[]) {// Color colors=new Color(100,200,300); //wrongColor color = Color.RED;Color colorYellow=Color.YELLOW;System.out.println(color); // 调用了toString()方法System.out.println(color.ordinal());System.out.println(color.compareTo(colorYellow)); //返回的是两个枚举值的顺序之差System.out.println(Color.valueOf("BLUE"));System.out.println(Color.valueOf(1)); //重写valueOf方法 System.out.println(ColorType.valueOf(2).toString());}}
运行结果:
RED(255,0,0) 0 -3 BLUE(0,0,255) BLUE(0,0,255) Black-------------->BLACK(0,0,0)
自定义方法:
package test;public class EnumTest3 {public enum EnumTest {MON(1), TUE(2), WED(3), THU(4), FRI(5), SAT(6) {@Overridepublic boolean isRest() {return true;}},SUN(0) {@Overridepublic boolean isRest() {return true;}};private int value;private EnumTest(int value) {this.value = value;}public int getValue() {return value;}public boolean isRest() {return false;}}public static void main(String[] args) {System.out.println("EnumTest.FRI 的 value = " + EnumTest.SAT.isRest());} }
输出结果:
EnumTest.FRI 的 value = true
转载于:https://my.oschina.net/airship/blog/3038903
重写enum的valueof方法等相关推荐
- java enum 重写_重写enum的valueof方法等
enum 对象的常用方法介绍 intcompareTo(E o) 比较此枚举与指定对象的顺序. ClassgetDeclaringClass() 返回与此枚举常量的枚举类型相对应的 Class 对象. ...
- 关于Enum枚举的valueOf方法的使用
所有的枚举都默认继承了java.lang.Enum, 关于父类中的valueOf方法的使用,见如下的代码说明 package cn.cuit.stream;public enum ActivityTy ...
- java enum values作用,Java Enum valueOf()方法与示例
枚举类valueOf()方法valueOf()方法在java.lang包中可用. valueOf()方法用于检索具有给定参数en_name(枚举名称)的给定参数en_ty(枚举类型)的枚举常量,我们需 ...
- JS重写函数valueOf方法实现连续调用求和
对象转原始值先toString再valueOf var obj = {toString: function() {console.log('调用了 obj.toString');return {};} ...
- String.valueOf()方法与toString()方法的区别
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 两者都是把ObJect对象转化为String 类型. 2.string.valueof()方法 ...
- JavaScript中的valueOf方法详解
Object.prototype.valueOf() valueOf() 方法返回指定对象的原始值. 语法 object.valueOf() 返回值 返回值为该对象的原始值. 描述 JavaScrip ...
- JS 中 valueOf() 方法的详解
JS 中 valueOf() 方法的详解 JavaScript 中的 valueOf() 方法用于返回指定对象的原始值,若对象没有原始值,则将返回对象本身.通常由JavaScript内部调用,而不是在 ...
- Integer类中的valueOf方法
在一个公众号上看到一道面试题,由此引出对Integer类中的valueOf方法的探究.Integer类中的valueOf源码如下: public static Integer valueOf(int ...
- 1、为什么使用Long时,推荐多使用valueOf方法,少使用parseLong方法
为什么使用Long时,推荐多使用valueOf方法,少使用parseLong方法? 因为Long本身有缓存机制,缓存了-128到127范围内的Long,valueOf方法会从缓存中去拿值,如果命中缓存 ...
最新文章
- JQuery:DOM操作
- 分享关于搭建高性能WEB服务器的一篇文章
- Python新手常见错误汇总|附代码检查清单
- C语言程序练习-L1-018 大笨钟 (10分)
- FreeRTOS系统配置文件FreeRTOSConfig.h
- 只有ajax会跨域吗_ajax解决跨域
- JAVA编程中的类和对象
- 如何排查Oracle表空间不足问题
- Stata 中的向量自回归模型(VAR)
- flashFxp连接不上服务器。
- 卷积神经网络以LeNet网络为例的手写体识别
- 你养狗的方法够科学吗?
- iPad中国内地商标权诉讼调查
- GBase 8c 技术白皮书 六
- eap wifi 证书_如何以编程方式在Android中安装CA证书(用于EAP WiFi配置)?
- 论文 | 科研软件 —— Microsoft VisioPro 2019安装及注册教程
- Redis 持久化——RDB 详解
- linux aeon gcc,在rosettaCM中,一些操作所需要的linux命令
- 解决wps writer未响应无法打印,一点打印就无响应死机,PDF用网页打开打印也会死机的问题
- 初学Java常见异常:NPE空指针异常怎么解决?