例1
首先,新建一个Java工程:demo,新建枚举类Color
,新建启动类hello
,代码分别如下:
public enum Color {
RED,GREEN,BLUE;
}
import java.util.Arrays;
public class Hello {
public static void main(String[] args) {
Color c = Color.RED;
System.out.println(c);
System.out.println(Arrays.toString(Color.values()));
for(Color color:Color.values()){
System.out.println(color);
}
}
}
运行main
,控制台打印如下信息:
RED
[RED, GREEN, BLUE]
RED
GREEN
BLUE
Color.values()
将取得枚举类中的全部内容,返回的是一个对象数组。
例2
新建枚举类Coupon
,新建Hello
,内容如下:
public enum Coupon {
MANJIAN("满减券","001"),
ZHEKOU("折扣券","002"),
LIJIAN("立减券","003");
private String description;
private String code;
private Coupon(String description,String code){
this.description = description;
this.code = code;
}
public String getDescription() {
return description;
}
public String getCode() {
return code;
}
}
public class Hello {
public static void main(String[] args) {
String code = Coupon.MANJIAN.getCode();
String desc = Coupon.MANJIAN.getDescription();
System.out.println(desc +"'s code is " + code);
}
}
运行main
,控制台打印出如下信息:
满减券's code is 001
实例3
在枚举类Coupon
定义静态方法of
,如下:
import java.util.Objects;
import java.util.stream.Stream;
public enum Coupon {
MANJIAN("满减券","001"),
ZHEKOU("折扣券","002"),
LIJIAN("立减券","003");
private String description;
private String code;
private Coupon(String description,String code){
this.description = description;
this.code = code;
}
public String getDescription() {
return description;
}
public String getCode() {
return code;
}
public static Coupon of(String code){
Objects.requireNonNull(code);
return Stream.of(values())
.filter(c -> c.code.equals(code))
.findAny()
.orElseThrow(() -> new IllegalArgumentException(code + " not exists"));
}
}
在main
中调用Coupon.of("000")
,如下:
public class Hello {
public static void main(String[] args) {
Coupon c = Coupon.of("000");
}
}
运行结果如下:
Exception in thread "main" java.lang.IllegalArgumentException: 000 not exists
at Coupon.lambda$of$1(Coupon.java:31)
at java.util.Optional.orElseThrow(Optional.java:290)
at Coupon.of(Coupon.java:31)
at Hello.main(Hello.java:3)
因为000
不是枚举项,所以抛出异常“000 not exists"。
我们来试枚举类中存在的一个枚举项,如001
,
public class Hello {
public static void main(String[] args) {
Coupon c = Coupon.of("001");
System.out.println(c.getCode());
System.out.println(c.getDescription());
}
}
运行main()
,控制台打印出如下信息:
001
满减券