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方法等相关推荐

  1. java enum 重写_重写enum的valueof方法等

    enum 对象的常用方法介绍 intcompareTo(E o) 比较此枚举与指定对象的顺序. ClassgetDeclaringClass() 返回与此枚举常量的枚举类型相对应的 Class 对象. ...

  2. 关于Enum枚举的valueOf方法的使用

    所有的枚举都默认继承了java.lang.Enum, 关于父类中的valueOf方法的使用,见如下的代码说明 package cn.cuit.stream;public enum ActivityTy ...

  3. java enum values作用,Java Enum valueOf()方法与示例

    枚举类valueOf()方法valueOf()方法在java.lang包中可用. valueOf()方法用于检索具有给定参数en_name(枚举名称)的给定参数en_ty(枚举类型)的枚举常量,我们需 ...

  4. JS重写函数valueOf方法实现连续调用求和

    对象转原始值先toString再valueOf var obj = {toString: function() {console.log('调用了 obj.toString');return {};} ...

  5. String.valueOf()方法与toString()方法的区别

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 两者都是把ObJect对象转化为String 类型. 2.string.valueof()方法 ...

  6. JavaScript中的valueOf方法详解

    Object.prototype.valueOf() valueOf() 方法返回指定对象的原始值. 语法 object.valueOf() 返回值 返回值为该对象的原始值. 描述 JavaScrip ...

  7. JS 中 valueOf() 方法的详解

    JS 中 valueOf() 方法的详解 JavaScript 中的 valueOf() 方法用于返回指定对象的原始值,若对象没有原始值,则将返回对象本身.通常由JavaScript内部调用,而不是在 ...

  8. Integer类中的valueOf方法

    在一个公众号上看到一道面试题,由此引出对Integer类中的valueOf方法的探究.Integer类中的valueOf源码如下: public static Integer valueOf(int ...

  9. 1、为什么使用Long时,推荐多使用valueOf方法,少使用parseLong方法

    为什么使用Long时,推荐多使用valueOf方法,少使用parseLong方法? 因为Long本身有缓存机制,缓存了-128到127范围内的Long,valueOf方法会从缓存中去拿值,如果命中缓存 ...

最新文章

  1. JQuery:DOM操作
  2. 分享关于搭建高性能WEB服务器的一篇文章
  3. Python新手常见错误汇总|附代码检查清单
  4. C语言程序练习-L1-018 大笨钟 (10分)
  5. FreeRTOS系统配置文件FreeRTOSConfig.h
  6. 只有ajax会跨域吗_ajax解决跨域
  7. JAVA编程中的类和对象
  8. 如何排查Oracle表空间不足问题
  9. Stata 中的向量自回归模型(VAR)
  10. flashFxp连接不上服务器。
  11. 卷积神经网络以LeNet网络为例的手写体识别
  12. 你养狗的方法够科学吗?
  13. iPad中国内地商标权诉讼调查
  14. GBase 8c 技术白皮书 六
  15. eap wifi 证书_如何以编程方式在Android中安装CA证书(用于EAP WiFi配置)?
  16. 论文 | 科研软件 —— Microsoft VisioPro 2019安装及注册教程
  17. Redis 持久化——RDB 详解
  18. linux aeon gcc,在rosettaCM中,一些操作所需要的linux命令
  19. 解决wps writer未响应无法打印,一点打印就无响应死机,PDF用网页打开打印也会死机的问题
  20. 初学Java常见异常:NPE空指针异常怎么解决?

热门文章

  1. 【剑指offer-Java版】45圆圈中最后剩下的数字
  2. 浅析@Deprecated,调用方法时出现横线划掉样式
  3. Mac-终端hostname变为bogon的问题
  4. DP Review 1
  5. HDU 4614 Vases and Flowers 【线段树】+【二分】
  6. 华人Hbuy隐私政策
  7. 部署node.js的开发环境
  8. 软件测试女孩学适合吗
  9. Linux安装程序Anaconda分析
  10. rails 数据库相关操作命令