gpt4 book ai didi

java - 静态 block 未运行,没有最终变量

转载 作者:行者123 更新时间:2023-11-30 06:10:57 24 4
gpt4 key购买 nike

我在这里使用我的 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) 来运行静态 block ;然而,这并没有发生。
我也使用 System.out 进行调试,但无济于事。
是 MidnightasOS 中的问题吗?如有必要,我会发布它的代码。

我这样做是因为我正在尝试使用 Linux 和 Raspberry PI 创建一个人工操作系统。
这应该是像 Game Boy 一样的游戏机。
我正在尝试加载所有 Game 类,以便其中至少有一个会使用 MidnightasOS.setGame(Class);

感谢阅读。

最佳答案

类加载器何时加载 Dots 类。它将在此类的第一个引用上加载。看看你有没有提到过这门课

You can even dynamically load the class要找到一个类的所有子类型并加载它们,您可以使用 this library

 public class MainClass {

public static void main(String[] args){

ClassLoader classLoader = MainClass.class.getClassLoader();

Reflections reflections = new Reflections("org.midnightas");

Set<Class<? extends Game>> subTypes = reflections.getSubTypesOf(Game.class);
for(Class<? extends Game> subType : subTypes){
try {
Class aClass = classLoader.loadClass(subType);
System.out.println("subType.getName() = " + subType.getName());
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}

}

关于java - 静态 block 未运行,没有最终变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34944060/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com