java - 为什么我不断收到 Java.Lang.NullPointerException

标签 java game-loop

我在此代码上不断收到 Java.Lang.NullPointerException:

private void render(){
    BufferStrategy bs = this.getBufferStrategy();
    if(bs == null){
        this.createBufferStrategy(3);
    }

    Graphics g = bs.getDrawGraphics();

    g.dispose();
    bs.show();
}

有人能告诉我我做错了什么吗?

最佳答案

即使您调用 this.createBufferStrategy(3);,您的 bs 变量仍然未分配。

创建后需要读回它:

if(bs == null){
    this.createBufferStrategy(3);
    bs = this.getBufferStrategy();
}

最好添加一个检查,以确保在调用 createBufferStrategy 之后返回一个非 null:

this.createBufferStrategy(3);
bs = this.getBufferStrategy();
if (bs == null) throw new IllegalStateException("Buffered structure is not created.");

关于java - 为什么我不断收到 Java.Lang.NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27094151/

相关文章:

java - 将 .java 文件放入 .war

java - 如何使用 Dagger 2 将 idemId 注入(inject)到 Presenter 中? Dagger .android

java - 如何在android studio中显示应用程序设计窗口?

java - 改进我的贪心算法

android - 在 android 中,我应该在什么时候将主游戏循环放在初始 Activity 类中?

c# - 游戏循环和时间跟踪

c++ - SFML 渲染性能问题

java - Android 应用程序未在其他设备上运行

c++ - 我可以在不使用嵌入式 while_loop 的情况下使用 SDL 检查事件吗?

java - 乒乓 Racket 不停地晃动,不停留在一个位置上