我需要从 enum
和 generic
中提供某种功能。由于枚举 cannot have type parameters (它只是被语法禁止)并且实际上像 public static final
成员一样我倾向于写这样的东西:
public class GenericEnumLikeClass<T>{
public static GenericEnumLikeClass<MyType> TYPE_INSTANCE;
public static GenericEnumLikeClass<AnotherType> ANOTHER_INSTANCE;
//other things
}
问题是我以前从未做过类似的事情,严格来说我不确定从 Java 约定的角度来看是否正确。当我们需要通过提供 Type Paramters
来扩展类似枚举的行为时,它会被认为是奇怪的东西还是一种常用技术?
最佳答案
这是在 Java 1.5 引入枚举之前使用的技术,因此看起来并不奇怪。较旧的 API 有很多这些枚举样式的类。我建议将构造函数设为私有(private)并提供一个返回所有可用实例数组的 values()
方法。
关于java - Java 中的枚举和泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33340253/