Java--枚举类型(枚举类型介绍 & 定义枚举类型 & 枚举类型的使用 & 枚举类型的注意事项 & 遍历枚举项)
Posted Z && Y
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java--枚举类型(枚举类型介绍 & 定义枚举类型 & 枚举类型的使用 & 枚举类型的注意事项 & 遍历枚举项)相关的知识,希望对你有一定的参考价值。
01: Java–枚举类型(枚举类型介绍 & 定义枚举类型 & 枚举类型的使用 & 枚举类型的注意事项 & 遍历枚举项)
02: Java–枚举类型(枚举类型实现接口 & 枚举类型之间的比较 & 枚举类型用于switch语句)
1. 枚举类型
- 枚举类型的主要作用就是管理常量
1.1 大量使用常量来表示数据存在以下问题:
示例:
public static final String WEI_XIN = "weixin";
public static final String WEI_XIN_URL = "https://weixin.qq.com/";
public static final String ZHI_FU_BAO = "zhifubao";
public static final String ZHI_FU_BAO_URL = "https://www.alipay.com/";
问题:
- 代码不够简介
- 不能很好的对数据进行分类,支付类型和支付接口地址靠人工通过命名关联在一起容易出错,常量越多越不方便管理。对于大型项目的开发类似的配置有很多,如果有一种简洁、分类配置常量的方式将会大大提高我们的生产效率。
1.2 枚举类型介绍
1.3 定义枚举类型
PayEnum.java
package character1;
/**
* MethodName: PayEnum
* Description: 支付参数的枚举类型
*/
public enum PayEnum {
/*
枚举项,采用全部大写的方式命名
枚举项就是一个常量对象(内存地址不变的对象),可以在定义的时候调用构造方法
不加括号WEI_XIN_PAY 或者 WEI_XIN_PAY() 表示调用无参构造方法
*/
WEI_XIN_PAY("weixin", "https://weixin.qq.com/"),
ZHI_FU_BAO_PAY("zhifubao", "https://www.alipay.com/");
private String payName;// 支付名称
private String payUrl;// 支付地址
// 定义构造方法, 枚举类型的构造方法是private
private PayEnum(String payName, String payUrl) {
this.payName = payName;
this.payUrl = payUrl;
}
// get/set方法
public String getPayName() {
return payName;
}
public void setPayName(String payName) {
this.payName = payName;
}
public String getPayUrl() {
return payUrl;
}
public void setPayUrl(String payUrl) {
this.payUrl = payUrl;
}
}
小结:
相比较于这种方式
```java
public static final String WEI_XIN = "weixin";
public static final String WEI_XIN_URL = "https://weixin.qq.com/";
public static final String ZHI_FU_BAO = "zhifubao";
public static final String ZHI_FU_BAO_URL = "https://www.alipay.com/";
``
上面的枚举类型看着就舒服多了。
1.4 枚举类型的使用
public static void main(String[] args) {
System.out.println(PayEnum.WEI_XIN_PAY.getPayName());
System.out.println(PayEnum.WEI_XIN_PAY.getPayUrl());
}
1.5 枚举类型的注意事项
- 每个枚举类型都继承java.lang.Enum,所以枚举类型不可以再继承其他类型。
- 枚举项就是枚举类型的对象(实例),一般使用大写字母加下划线(和常量命类似),一个枚举项表示一个常量项,多个枚举类型之间使用逗号分隔。
- 枚举类型的构造方法必须使用private私有:构造方法为private目的就是为了不让你用new来创建该类型的对象,而枚举类型的个数必须是确定的(根据枚举体的作用定义)所以它必须是private。
- 通过"枚举类名.枚举项名称"取访问指定的枚举项。
1.6 遍历枚举项
第一种方式: 通过反射
public static void main(String[] args) {
System.out.println("第一种通过反射");
Class clz = PayEnum.class;
for (Object obj : clz.getEnumConstants()) {
System.out.println(obj);
System.out.println(((PayEnum) obj).getPayName());
System.out.println(((PayEnum) obj).getPayUrl());
System.out.println("---------------------------");
}
}
第二种通过枚举静态方法values():
public static void main(String[] args) {
System.out.println("第二种通过枚举静态方法values()");
for (PayEnum rate : PayEnum.values()) {
System.out.println(rate);
System.out.println(rate.getPayName());
System.out.println(rate.getPayUrl());
System.out.println("-------------------------------");
}
}
以上是关于Java--枚举类型(枚举类型介绍 & 定义枚举类型 & 枚举类型的使用 & 枚举类型的注意事项 & 遍历枚举项)的主要内容,如果未能解决你的问题,请参考以下文章