Java:在原始类中调用一个名称未定义的方法?

时间:2016-01-06 00:31:56

标签: java class parameters

是的,首先我不知道这会被称为什么,所以我希望标题是正确的?

在我的主要课程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);
}

1 个答案:

答案 0 :(得分:2)

解决此问题的一种方法是让EventOneEventTwoEventThree扩展相同的Interface(让我们称之为Event)。< / p>

Event接口有一个名为update的未实现方法。

然后你的addEvent方法将如下所示:

public void addEvent(Event event) {
    event.update();
}