是否可以设计自己的 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/