gpt4 book ai didi

java for循环运行list只执行一次

转载 作者:行者123 更新时间:2023-12-01 20:25:10 24 4
gpt4 key购买 nike

下面代码中的 for 循环仅执行一次。我正在研究类似的问题,但这些问题会破坏它,比如在循环中编辑列表,而我却没有。

public String getProfileList(JSONObject obj, String uuid) {
JSONObject profile = (JSONObject) obj.get("profiles");

@SuppressWarnings("unchecked")
ArrayList<String> list = new ArrayList<String>(profile.keySet());

System.out.println(list);

for (String object: list) {
System.out.println(object);
String isUUID = (String) ((JSONObject) profile.get(object)).get("mpm-data:uuid");
System.out.println(object + " == " + isUUID);
if (isUUID.equals(uuid)) {
System.out.println("TRUE");
return object;
}
}
System.out.println("no profile found.");
return null;
}

此代码输出:

[5fb4acd48e7d422eabecd82e32fb03c6, 44d01181eae635d31f2cefe5e1f75cd4,e0e96e422659dfdc1ad16d53a37ee618, a3ae7136f900457290e99bd657db0385]
5fb4acd48e7d422eabecd82e32fb03c6
5fb4acd48e7d422eabecd82e32fb03c6 == null

最佳答案

对于控制台输出,您可以看到 isUUIDnull。这意味着当您尝试调用其方法 equals 时,实际上没有对象可以调用它,您应该得到一个 NullPointerException。这就是为什么最好对您知道左侧不会为空的部分进行equals断言:

uuid.equals(isUUID) 会更好。

请注意,如果您使用变量和静态字符串执行 equals 断言,那么最好这样做:

"myCompareString".equals(myVariable),因为“myCompareString”永远不能为 null,而 myVariable 可以。

关于java for循环运行list只执行一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43962936/

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