Java枚举(enum)类说明
枚举类是我们JDK1.5之后的新特性,枚举类其实和普通Java类一样,只不过它继承java.lang.Enum类,是引用数据类型。至于枚举类的作用,说直白点,就是为了让我们更好的维护项目中的常量,代码更加简洁。
原来我们定义常量的方式
public class PayFactory { public static final String WEIXINPAYTYPE = "weixin"; public static final String WEINXINPAYURL = "https://api.mch.weixin.qq.ocn/pay/"; public static final String ALIPAYTYPE = "ali"; public static final String ALIPAYURL = "https://openapi.alipay.com/"; public static final String UNIONPAYTYPE = "union"; public static final String UNIONPAYURL = "https://gateway.95516.com/gateway/api"; }
枚举类定义
/** * 定义枚举类要使用enum关键字 * public enum 枚举类名 { * 枚举项1, 枚举项2, 枚举项3....; * 构造方法 * 成员变量 * 成员方法 * } */ public enum PayEnum { WEIXINPAY("weixin","https://api.mch.weixin.qq.ocn/pay/"), ALIPAY("ali","https://openapi.alipay.com/"), UNIONPAY("union","https://gateway.95516.com/gateway/api"); //枚举项其实就是一个个对象,下列内容定义的就是枚举项的属性 private String name; private String payUrl; //枚举类的构造方法只能是private private PayEnum(){ } private PayEnum(String name, String payUrl){ this.name = name; this.payUrl = payUrl; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPayUrl() { return payUrl; } public void setPayUrl(String payUrl) { this.payUrl = payUrl; } }
并且我们的枚举类通常会去配合我们的接口使用
public interface PayEnum { public String getName(); public String getPayUrl(); }
记得给我们的实现类加上implements
引用枚举类
public class PayService { public static void main(String[] args) { System.out.println(PayEnumImpl.UNIONPAY.getName()); System.out.println(PayEnumImpl.UNIONPAY.getPayUrl()); //枚举项之间的比较是使用==进行比较的 if (PayEnumImpl.ALIPAY.getName() == "ali"){ System.out.println("true"); } } }