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
相关推荐
无论是工作学习,不断的总结是必不可少的。只有不断的总结,发现问题,弥补不足,才能长久的进步!!Java学习更是如此,知识点总结目录如下: 目录 一、 Java概述 3 ...Java 8新特性 347 Java 性能优化 362
JAVA高级特性 1.静态导入:先举个离例子 。 import java.lang.Integer.parseInt; public class StaticImport { int x = parseInt("123"); System.out.println(x); } 这样的程序如果不在IDE 工具中输入,是很难...
enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性,存放在 java.lang 包中,在上面的这种情况下,enum能派上用场了。枚举类型的用途不仅如此,具体可用场景可看下面的介绍 1、常量 以前我们定义一...
enum的全称为enumeration, 是 JDK 1.5中引入的新特性,存放在 java.lang包中。下面这篇文章是我在使用enum过程中的一些经验和总结,分享出来方便大家快速的掌握Java中枚举(enum),有需要的朋友们下面跟着小编来一起...
java1.5之后的新特性: 1,枚举(enum) 作用:一般用于代表一组相同类型的常用常量。 原理:语法结构与java类的语法不一样,但是经过编译器编译之后产生的是一个class文件。该class文件经过反编译之后实际上是...
5.0新特性: 泛型: 泛型的形式: 类型> <E extends Numner&comparator> 类名&接口,表示E继承Numner类实现comparator接口 <?> 泛型通配符表示任意类型,仅用于传参 类型> 表示这个类型可以是该...
16.2.1 了解java.lang.enum类 533 16.3 关于注释 542 16.3.1 常用标准注释 542 16.3.2 自定义注释类型 545 16.3.3 执行时期读取注释信息 549 16.4 重点复习 551 16.5 课后练习 551 appendixa 如何...
try-with-resources,之前使用的很多IO操作都需要手动去关闭流,现在使用这种方式,只要是实现了java.lang.AutoCloseable和java.io.Closeable的类就不需要再手动关闭了。 例子:try(OutputStream out=new ...
Enum作为Sun全新引进的一个关键字,看起来很象是特殊的class, 它也可以有自己的变量,可以定义自己的方法,可以实现一个或者多个接口。 当我们在声明一个enum类型... 3.Enum默认实现了java.lang.Comparable接口。 4.
具体的java.sql.Clob, Character[], char[] 和 java.lang.String 将被持久化为 Clob 类型. java.sql.Blob, Byte[], byte[] 和 serializable type 将被持久化为 Blob 类型。 @Lob public String getFullText() { ...
enum 的全称为 enumeration, 是 JDK 5 中引入的新特性,存放在 java.lang 包中。这篇文章给大家介绍Java枚举相关知识,需要的的朋友参考下
C .unchecked异常继承java.lang.RuntimeException类。 D .NullPointerException , IllegalArgumentException属于unchecked exception。 单选 23.关于Map类型集合的遍历方式,下列哪些说法是正确的:D A .Map...
基本数据类型的包装类 •八大数据类型的包装类分别为:Byte、Short、Integer、Long、Character、 Float、Double、Boolean。 把基本数据类型变量包装类实例是通过对应包装类的构造器来实现的,不仅如此,8个...