静态变量在 json.put() 处的计算结果为 null

Static variable evaluates to null at json.put()

提问人:Projekt Check 提问时间:5/6/2022 最后编辑:Mark RotteveelProjekt Check 更新时间:5/7/2022 访问量:70

问:

我有一个类,只能将变量存储为键,例如:

public class V {
    public static final String SHOW_OR_FOUND = "show_or_found";
    public static final int FAULT = -1;
}

我将它们用于键和比较,因此它更具可读性并避免失败。

现在问题来了。如果我在另一个类的方法中执行以下操作:

JSONObject json = new JSONObject();
json.put(V.SHOW_OR_FOUND, "something important to save")

这是行不通的。使用调试器工具,我可以看到V.SHOW_OR_FOUND计算结果为 null。如果我做这样的事情:

String test = V.SHOW_OR_FOUND;
json.put(test, "something important to save")

它有效。此外,如果我通过调用它自己的类方法来使用 V,它工作得很好。

this.save(V.SHOW_OR_FOUND, "something important to save")

我对此感到不屑一顾,因为这对我来说完全没有意义。请人解释并给出解决方案吗?

我已经尝试过以下方法:

String.valueOf(V.SHOW_OR_FOUND)
V.SHOW_OR_FOUND.toString()

后者导致 NullPointerException,是的,我仔细检查了拼写错误,甚至复制粘贴了变量名称。

java android json nullpointerexception

评论

0赞 Torben 5/6/2022
这听起来像是一个开发环境问题,无法通过查看充满语法错误的断章取义代码片段来解决。
0赞 Eskapone 5/6/2022
正如@Torben指出的那样,这听起来像是一些IDE或调试问题。请尝试以下操作:(a) 重新启动 IDE。(b) 重建模块/项目。(c) 确保您的代码确实是正在调试的代码(我遇到过调试代码与源代码不匹配的情况,因为在此期间发生了更改)。

答: 暂无答案