枚举有方法的Java通用枚举参数

时间:2018-02-21 08:25:00

标签: java enums

我有2个或更多枚举,每个枚举使用相同的方法。我需要使用所有这些枚举来验证另一个类中的消息。每个枚举都有相同的方法。我理解如何将枚举作为通用参数传递,但我不相信可以在接收枚举作为通用枚举的方法中调用该枚举方法。

1 个答案:

答案 0 :(得分:1)

就像其他类一样,enum可以实现接口。

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);
    }
}