在枚举中使用实现“Listeners”的类

时间:2017-03-03 16:45:46

标签: java events enums listener

任何人都知道如何使用类作为需要在枚举中实现“Listener”的参数?

例如,我想通过EventType.MY_LISTENER.register()动态加载一些类;

public enum EventType {
    GAME_START(GameStartListener.class);

    private Class<?> clazz;

    EventType(Class<?> clazz) {
        this.clazz = clazz;
    }

    public void register() {
        Main.registerListener(this.clazz);
    }
}

“GameStartListener”是一个实现“Listener”的类,但我不确定如何做到这一点,因为它显示了语法错误:

Main.registerListener(this.clazz);

“java:不兼容的类型:java.lang.Class无法转换为my.package.Listener”

任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:0)

由于Main.registerListener需要Listener类型,并且您实际传递Class<GameStartListener>(包含有关GameStartListener类的元数据的类型)而不是真实的GameStartListener对象