java - Java 中的枚举和泛型

标签 java generics enums

我需要从 enumgeneric 中提供某种功能。由于枚举 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/

相关文章:

c# - 返回通用实体列表

Java Enum 表现得很奇怪

java - Cobertura、枚举和 Switch 语句

java - 正则表达式一组或多组 - 正则表达式匹配带或不带端口号的 url

java - Hadoop名称节点secondarynode突然停止

java - 有效地池化 ByteBuffer 的实例

java - 通用返回类型?

java - 泛型 - 使用 this 从另一个调用参数化构造函数

枚举值的 Java 数组

java - 两个 if 语句,只有一个有效