Java 静态变量的泛型类

Java 静态变量的泛型类,java,enums,Java,Enums,我正在尝试为下面的代码编写更通用的类,以便最终开发人员可以更改EventType中定义的类型和静态变量,并为它们提供在EventType中添加或删除静态变量的选项 我还考虑对事件类型使用通用枚举,如下所示 public interface EventType<T extends Enum<T>> { String name(); String getFriendlyName(); Class<T> getDeclaringClass

我正在尝试为下面的代码编写更通用的类,以便最终开发人员可以更改EventType中定义的类型和静态变量,并为它们提供在EventType中添加或删除静态变量的选项

我还考虑对事件类型使用通用枚举,如下所示

public interface EventType<T extends Enum<T>>
{
    String name();

    String getFriendlyName();

    Class<T> getDeclaringClass();

    T getRaw();

    public String getFullClassName();
}

将事件设置为接口并将其从可序列化扩展

然后使用枚举实现该事件接口。例如:

public interface Event extends Serializable {
     // Throw in your methods here
}

public enum MyEvents implements Event {
    DO_FILE_CONVERSION, DO_REMOVE_FILE, DO_COPY_FILE;
    // Implement methods
}

这样,您的接口(即您希望事件能够执行的任何操作)与实现(存在哪些事件及其实现)分离。

为什么?这有什么好处?您失去了类型安全性,增加了复杂性,错误很容易产生,要更改属性文件,您仍然需要添加代码。为什么?原因是那些静态变量应该由最终开发人员添加。我只想提供界面为什么不制作
EventTypes
an?(
public interface Event extends Serializable {
     // Throw in your methods here
}

public enum MyEvents implements Event {
    DO_FILE_CONVERSION, DO_REMOVE_FILE, DO_COPY_FILE;
    // Implement methods
}