怎样自定义枚举类

本文介绍了如何自定义枚举类,包括枚举类的声明、构造方法、枚举常量及其使用。枚举常量可以有属性和方法,且会自动实例化。通过示例代码展示了带有不同构造方法和属性的枚举类用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<span style="font-size:24px;">1,怎样自定义枚举类?
自定义枚举类的方法为enum 后加你想要的名字,而enum前只能加public或者不加任何东西。枚举类是一个类,它可以有自己的属性,一般方法,构造方法。并且可以有多个。枚举类内可以有枚举常量也可以没有。枚举常量实际上是一个枚举类的子类对象。枚举常量{}内是不能有构造方法的,可以有其它方法,属性,方法可以是继承或重载@Override枚举类的方法。
枚举常量后可跟()和{},如果二者都有,()在{}前。()的使用主要是看枚举类有没有显示的构造方法,()的使用就根据构造方法来进行实例化。枚举常量实际是必须实例化的,如果枚举类没显示构造方法,那么枚举常量名后可以不跟()。但是枚举常量也是实例化得,因为枚举会类会有一个默认的构造方法。就像一般空类,也有构造方法一样。
枚举常量之间用,分隔,最后一个枚举常量后跟着是分号(;)。
和以下代码一起阅读:
import java.util.List;
import java.net.URL;
public enum PropertyType {
    INT("int") {
        @Override protected boolean validateString(String obj) throws Exception {
            Integer.parseInt(obj);
            return true;
        }
    },
       COMPONENT_LIST("ComponentList", List.class),
    STRING("String", String.class),
   
    RESOURCE("Resource") {
        @Override
        public boolean validateString(String obj) throws Exception {
                      if (obj.toLowerCase().startsWith("resource:/"))
                return true;
            if (obj.indexOf(':') == -1)
                obj = "file:" + obj;
            new URL(obj);
            return true;
        }
    },
    STRING_LIST("StringList", List.class);
     private final String displayName;
    private Class<?> checkClass;
    private PropertyType(String displayName) {
        this.displayName = displayName;
    }
    private PropertyType(String displayName, Class<?> checkClass) {
        this.displayName = displayName;
        this.checkClass = checkClass;
    }
    public String toString() {
        return displayName;
    }
    protected boolean validateString(String obj) throws Exception {
        return true; // default implementation
    }
   }
</span>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值