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");
        }

    }
}

 

posted @ 2022-04-24 10:03  RFAA  阅读(192)  评论(0编辑  收藏  举报