如何初始化Map类型变量以解决NullPointerException错误?

oc2020

我不确定执行for循环时哪个变量为null。是未初始化的条目吗?

MainActivity.java

    static class Gist {
        Map<String, GistFile> files;
    }

    static class GistFile {
        String content;
    }

    Gist gist = gistJsonAdapter.fromJson(responseBody.source());

    for (Map.Entry<String, GistFile> entry : gist.files.entrySet()) {
              System.out.println(entry.getKey());
              System.out.println(entry.getValue().content);
    }

错误信息

java.lang.NullPointerException: Attempt to invoke interface method 'java.util.Set java.util.Map.entrySet()' on a null object reference
        at com.example.soccerapi.MainActivity$1.onResponse(MainActivity.java:76)
        at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:519)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:919)
亨利

gist.files一片空白。由于它来自responseBody两者,因此请确保在响应中将其设置,或者在使用前检查它是否为空。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章