【发布时间】:2016-04-28 21:31:54
【问题描述】:
我在这里使用我的 API 有这段代码:
package org.midnightas.os.game.dots;
import java.awt.Graphics2D;
import org.midnightas.os2.Key;
import org.midnightas.os2.MidnightasOS;
import org.midnightas.os2.gameapi.Game;
public class Dots extends Game {
public Dots(MidnightasOS midnightasos) {
super(midnightasos);
}
@Override
public void init() {
}
@Override
public void keyPressed(Key arg0) {
}
@Override
public void render(Graphics2D arg0) {
}
@Override
public void tick() {
}
static {
System.out.println("MOS Dots crashed.");
MidnightasOS.setGame(Dots.class);
}
}
静态块应该调用 MidnightasOS.setGame(Class);
然而,这并没有发生。
我也使用 System.out 进行了调试,但无济于事。
是 MidnightasOS 内部的问题吗?如有必要,我会发布它的代码。
我这样做是因为我正在尝试使用 Linux 和 Raspberry PI 创建一个人工操作系统。
这应该是一个类似 Game Boy 的游戏机。
我正在尝试加载所有 Game 类,因此其中至少有一个会使用 MidnightasOS.setGame(Class);
感谢阅读。
【问题讨论】:
-
类加载器第一次加载
Dots类后,静态块就会被执行。如果您从中调用任何引用(调用某些方法,创建对象等),它将仅加载该类。 -
setGame 是 MidnightasOS 中的静态方法吗?
-
您能补充一下您是如何尝试加载 Dots 类的吗?
-
动态地,我将尝试使用 @awesome 向我展示的库。
标签: java static-block