没注意到一直以为java的enum只是简单的数字表示跟C一样,
没想到可以和类一样
转载:http://wosyingjun.iteye.com/blog/1895381
------------------------------------------------------------------------------------------------------
1、enum的遍历和基本方法
package yingjun.enumeration; enum Shrubbery { GROUND, CRAWLING, HANGING } public class EnumClass { public static void main(String[] args) { //调用enum的value()方法可以遍历enum实例 for(Shrubbery s : Shrubbery.values()) { System.out.println(s + " ordinal: " + s.ordinal()); //返回enum实例的次序 System.out.println(s.compareTo(Shrubbery.CRAWLING) + " ");//比较 System.out.println(s.equals(Shrubbery.CRAWLING) + " ");//比较 System.out.println(s == Shrubbery.CRAWLING);//比较 System.out.println(s.getDeclaringClass());//获取所属类 System.out.println(s.name());//获取相应的enum实例 和toString()方法效果相同 System.out.println("----------------------"); } // 通过字符生成枚举类型 for(String s : "HANGING CRAWLING GROUND".split(" ")) { Shrubbery shrub = Enum.valueOf(Shrubbery.class, s); System.out.println(shrub); } } }
GROUND ordinal: 0 -1 false false class yingjun.enumeration.Shrubbery GROUND ---------------------- CRAWLING ordinal: 1 0 true true class yingjun.enumeration.Shrubbery CRAWLING ---------------------- HANGING ordinal: 2 1 false false class yingjun.enumeration.Shrubbery HANGING ---------------------- HANGING CRAWLING GROUND
2、向enum中添加自己的方法
package yingjun.enumeration; public enum OzWitch { //构建实例的通同时添加自身的描述 WEST("Miss Gulch, aka the Wicked Witch of the West"), NORTH("Glinda, the Good Witch of the North"), EAST("Wicked Witch of the East, wearer of the Ruby " +"Slippers, crushed by Dorothy's house"), SOUTH("Good by inference, but missing"); private String description; private OzWitch(String description) { this.description = description; } public String getDescription() { return description; } public static void main(String[] args) { for(OzWitch witch : OzWitch.values()) System.out.println(witch + ": " + witch.getDescription()); } }
WEST: Miss Gulch, aka the Wicked Witch of the West NORTH: Glinda, the Good Witch of the North EAST: Wicked Witch of the East, wearer of the Ruby Slippers, crushed by Dorothy's house SOUTH: Good by inference, but missing
3、重写enum的toString()方法
//重写toString()方法 public enum SpaceShip { SCOUT, CARGO, TRANSPORT, CRUISER, BATTLESHIP, MOTHERSHIP; public String toString() { String newname = name(); String lower = newname.substring(1).toLowerCase(); return newname.charAt(0) + lower; } public static void main(String[] args) { for(SpaceShip s : values()) { System.out.println(s); } } }
Scout Cargo Transport Cruiser Battleship Mothership
4、switch语句中的enum
package yingjun.enumeration; enum Signal { GREEN, YELLOW, RED, } public class TrafficLight { Signal color = Signal.RED; public String toString() { return "The traffic light is " + color; } public void change() { //编译器自动调用ordinal()产生整数的次序 switch(color) { case RED: color = Signal.GREEN; break; case GREEN: color = Signal.YELLOW; break; case YELLOW: color = Signal.RED; break; } } public static void main(String[] args) { TrafficLight t = new TrafficLight(); for(int i = 0; i < 7; i++) { System.out.println(t); t.change(); } } }
The traffic light is RED The traffic light is GREEN The traffic light is YELLOW The traffic light is RED The traffic light is GREEN The traffic light is YELLOW The traffic light is RED
5、随机选取enum中的实例
package yingjun.enumeration; import java.util.*; public class Enums { private static Random rand = new Random(47); public static <T extends Enum<T>> T random(Class<T> ec) { return random(ec.getEnumConstants()); } public static <T> T random(T[] values) { return values[rand.nextInt(values.length)]; } }
package yingjun.enumeration; enum Activity { SITTING, LYING, STANDING, HOPPING, RUNNING, DODGING, JUMPING, FALLING, FLYING } public class RandomTest { public static void main(String[] args) { for(int i = 0; i < 20; i++) System.out.print(Enums.random(Activity.class) + "\n"); } }
- STANDING
- FLYING
- RUNNING
- STANDING
- RUNNING
- STANDING
- LYING
- DODGING
- SITTING
- RUNNING
- HOPPING
- HOPPING
- HOPPING
- RUNNING
- STANDING
- LYING
- FALLING
- RUNNING
- FLYING
- LYING
相关推荐
NULL 博文链接:https://rensanning.iteye.com/blog/2013734
博文“Java 语言中 Enum 类型的使用介绍”的源码。
ava enum 枚举的spring boot2.x完美实现demo源码。java的枚举类型,可以理解为一种特殊的java类
java枚举类型的定义使用介绍,还有示例。
NULL 博文链接:https://janeky.iteye.com/blog/463611
全面掌握java枚举类型(enum-type)1
enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性,存放在 java.lang 包中,在上面的这种情况下,enum能派上用场了。枚举类型的用途不仅如此,具体可用场景可看下面的介绍 1、常量 以前我们定义一...
enum类型被intent所携带时各种情况的示例代码, MainActivity.java三处需解注释,分别来单独运行
Java中的枚举类型Enum示例源代码,详见http://blog.csdn.net/snarlfuture/article/details/18996037
Java1.5提供了关键字enum,能够通过该关键字方便得定义自己须要的枚举类型,比方 enum Season { SPRING, SUMMER, AUTUMN, WINTER } 定义了一个季节枚举类型。 在本例中,对于Season.SPRING这个...
javaenum源代码
讲述了java中的枚举类型的用法,深入枚举类型
java高级编程 Enum枚举 包括枚举的例子,问题 及一些文档,是复习的好资源
介绍的是java中的枚举类型,对于枚举类型的相关知识,我们也介绍过不少方面的内容。希望本文能够给你带来帮助,下面来一起看看,有需要的可以参考借鉴。
主要介绍了Java枚举类型enum的详解及使用的相关资料,需要的朋友可以参考下
主要介绍了Java中的枚举类型enum的使用,开始之前先讲解了枚举的用处,然后还举了枚举在操作数据库时的实例,需要的朋友可以参考下
enum的全称为enumeration, 是 JDK 1.5中引入的新特性,存放在 java.lang包中。下面这篇文章是我在使用enum过程中的一些经验和总结,分享出来方便大家快速的掌握Java中枚举(enum),有需要的朋友们下面跟着小编来一起...
可枚举可枚举与标准Java Enum类型相似,但具有解析“尚不知道”值的附加功能。 如果您尝试构建稳定的API,它们将无价之宝。获取图书馆将以下依赖项添加到您的项目中,或 下载。 < dependency> < groupId>nl....
主要介绍了java中enum的用法,包括了枚举类型的基本定义及用法分析,对于学习Java有着一定的学习与借鉴价值,需要的朋友可以参考下
本源码由 springboot 开发,只有2个简单的文件(1是 枚举类单例,2是 controller请求测试类)。 主要测试了枚举类的饿汉式加载机制 / 单例机制。 代码中包含枚举类的基本使用,和完整的请求示例。...