类文件编辑器"未找到来源"在默认的Java库中?

时间:2016-07-18 22:33:15

标签: java eclipse

我正在另一台计算机上工作,并将我的代码导出为存档文件,在家中将其下载,解压缩并导入。一切似乎都很好,直到我发现我得到一个空指针异常,指向我在这里使用随机:

private final Random random = new Random();

protected void generateLevel() {
    for (int y = 0; y < height; y++) {
        for (int x = 0; x < width; x++) {
            tiles[x + y * width] = random.nextInt(4);
        }
    }
}

它告诉我变量random返回null,当我控制+单击Random()时,它给我一个未找到类文件编辑器源的屏幕,here是截图。我似乎无法理解这个问题。为什么它无法从默认的Java库中找到文件的来源?有没有办法解决这个问题而不重写我的程序?

更新: 所以我被要求提供完整的堆栈跟踪,所以这里是:

Exception in thread "main" java.lang.NullPointerException
at com.josh.game.level.RandomLevel.generateLevel(RandomLevel.java:16)
at com.josh.game.level.Level.<init>(Level.java:14)
at com.josh.game.level.RandomLevel.<init>(RandomLevel.java:10)
at com.josh.game.Game.<init>(Game.java:46)
at com.josh.game.Game.main(Game.java:136)

以下是此错误中显示的所有函数,但它们都不应该返回null ...(我想这有点明显了)

RandomLevel函数(我决定抛弃整个事物)

public class RandomLevel extends Level {

private final Random random = new Random();

public RandomLevel(int width, int height) {
    super(width, height);
}

protected void generateLevel() {
    for (int y = 0; y < height; y++) {
        for (int x = 0; x < width; x++) {
            tiles[x + y * width] = random.nextInt(4);
        }
    }
}

关卡构造函数

    public Level(int width, int height) {
    this.width = width;
    this.height = height;
    tiles = new int[width * height];
    generateLevel();
}

游戏构造函数

    public Game() {
    Dimension size = new Dimension(width * scale, height * scale);
    setPreferredSize(size);

    screen = new Screen(width, height);
    frame = new JFrame();
    key = new Keyboard();
    level = new RandomLevel(64, 64);
    player = new Player(key);

    addKeyListener(key);
}

主要功能         public static void main(String [] args){         游戏=新游戏();         game.frame.setResizable(假);           game.frame.setTitle(Game.title);           game.frame.add(游戏);           game.frame.pack();           game.frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);           game.frame.setLocationRelativeTo(NULL);           game.frame.setVisible(真);

    game.start();
}

我需要提供任何其他代码。我已经完成并确保,据我所知,所有变量都在调用之前被实例化,所以我不能说。我可能错误地认为问题与我无法找到Random类的源代码有关,但我想不是吗?

0 个答案:

没有答案