Java通用枚举参数,其中枚举具有方法

Java通用枚举参数,其中枚举具有方法,java,enums,Java,Enums,我有两个或多个枚举,每个枚举中有相同的方法。我需要使用所有这些枚举来验证另一个类中的消息。每个枚举都有相同的方法。我知道如何将枚举作为泛型参数传递,但我不相信在将枚举作为泛型枚举接收的方法中调用该枚举的方法是可能的。与其他类一样,enums可以实现接口 interface CanThing { void doThing(); } enum Validate implements CanThing { ONE_THING { @Override

我有两个或多个枚举,每个枚举中有相同的方法。我需要使用所有这些枚举来验证另一个类中的消息。每个枚举都有相同的方法。我知道如何将枚举作为泛型参数传递,但我不相信在将枚举作为泛型枚举接收的方法中调用该枚举的方法是可能的。

与其他类一样,
enum
s可以实现接口

interface CanThing {
    void doThing(); 
}

enum Validate implements CanThing {
    ONE_THING {
        @Override
        public void doThing() {
            System.out.println("One thing");
        }
    },
    OTHER_THING;

    // Default.
    @Override
    public void doThing() {
        System.out.println("No thing");
    }
}

public void doAThing(CanThing thing) {
    thing.doThing();
}

public void test(String[] args) {
    for (CanThing t: Validate.values()) {
        doAThing(t);
    }
}

共享一些代码使用接口。枚举可以实现接口。