【发布时间】:2014-01-13 16:01:28
【问题描述】:
我试图完成的是调用特定类的接口。
我使用枚举来填写 .class 并获取该类的接口。
那么如何返回接口呢?
如果可能的话,我想避免反思。
提前致谢。
public interface GameInterface {
void start();
void sop();
}
public enum Game{
MINESWEEPER(MineSweeper.class),
MARIO(Mario.class);
private Class c;
public Game(Class c) {
this.c = c;
}
public GameInterface getGameInterface() {
// return Interface of the class
// So I can call for instance MINESWEEPER.getGameInterface().start()
// At this momement I use return:
// ((GamemodeInterface)this.c.getDeclaredMethod("getInstance", new Class[0]).invoke(null, new Object[0]));
// *MineSweeper and Mario are Singleton, thats why getInstance
}
}
澄清:
主要目标是在 MineSweeper 和 Mario 类中访问 Start() 和 Stop() 方法。
用法应该类似于:MINESWEEPER.getGameInterface().start()
但目前我不知道在知道 .class 的情况下获取接口的可靠解决方案。
【问题讨论】:
-
也许是我,但我不明白你在问什么。如果你没有很快得到一个体面的答案,请试着澄清你的问题。
-
您需要一个类的实例(即使用
new创建的东西)才能调用非静态方法。 -
你需要返回任何实现 GameInterface 类型的东西
-
Java没有静态接口,不能通过接口调用静态方法。
-
为什么不直接使用工厂方法?
标签: java class interface enums