是的,首先我不知道这会被称为什么,所以我希望标题是正确的?
在我的主要课程Main.java
中,它将运行这段代码:
ClassTwo cTwo new ClassTwo();
cTwo.addEvent(new EventOne());
cTwo.addEvent(new EventTwo());
cTwo.addEvent(new EventThree());
现在在ClassTwo的addEvent()中我将它作为:
public void addEvent(Class<?> event) {
event.update();
}
Class<?> event
刚刚放在那里,因为我不知道从哪里开始。 event.update()
当然会出现错误,因为Class
类型中没有此类方法。每个事件类都有一个update()
方法,所以我该怎么做呢?
编辑:
好吧,我的问题不是很清楚。
ClassTwo中的所有内容都将被制作成API,并且还包含一个游戏循环线程。接口我不知道,但java.lang.reflect.Method
看起来像是我想要的东西。
EDIT2: 这是更新方法:
private BufferedImage gameImage;
public void update() {
Graphics2D g = (Graphics2D) gameImage.getGraphics();
g.setColor(Color.YELLOW);
g.fillRect(0, 0, gSystem.getWidth() - 1, gSystem.getHeight() - 1);
///////////
// Change to the image made here will differ for each event.
///////////
cTwo.setGameImage(gameImage);
}
答案 0 :(得分:2)
解决此问题的一种方法是让EventOne
,EventTwo
和EventThree
扩展相同的Interface
(让我们称之为Event
)。< / p>
此Event
接口有一个名为update
的未实现方法。
然后你的addEvent方法将如下所示:
public void addEvent(Event event) {
event.update();
}