enums - Java——如何设计自己的类型?

标签 enums java

是否可以设计自己的 Java 类型,类似于可扩展的enum

例如,我有某个模块使用的用户角色,然后子包提供其他角色。

JDK 方面会涉及什么?

最佳答案

由于枚举无法扩展,因此您必须伪造它。

使用 protected 构造函数创建一个类。

然后您可以在类中创建 public static final FakeEnum 实例。

public class FakeEnum {

    private String name;
    private Object something;

    protected FakeEnum(String name, Object otherParam) {
        this.name = name;
        this.something = otherParam;
    }

    // public getters

    public static final FakeEnum ONE = new FakeEnum("one", null);
    public static final FakeEnum TWO = new FakeEnum("two", null);
    public static final FakeEnum THRE = new FakeEnum("thre", null);
}

然后你可以扩展它并向其中添加更多内容,如下所示:

public class ExtendedFakeEnum extends FakeEnum {

    public static final FakeEnum EXTENDED_ONE = new FakeEnum("extended_one", null);
    public static final FakeEnum EXTENDED_TWO = new FakeEnum("extended_two", null);

}

关于enums - Java——如何设计自己的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3069926/

相关文章:

java - Android 每 1 秒存储一次相机预览

java - Java 枚举定义有什么问题

java - 如何创建不同枚举类的列表

c# - 使用枚举实现层次结构的最佳 C# 模式是什么?

java - 集群、无状态 Web 应用程序 - 如何处理并发请求?

java - ConcurrentHashMap 的 Kotlin 并发

enums - Flutter/Dart 将 Int 转换为 Enum

java - 我应该使用哪种设计模式在 java 中构建 GUI 以及以下场景?

java - 是否可以使用 Jackson JSON 进行非对称序列化和反序列化?

java - 如何在Java中找到今天之前3个月的开始时间?