我是编程新手,所以这可能是我的完全疏忽。但我可以确认(在下面)If 标记中的两个值是相等的,但它没有返回我的值。
public static LANGUAGESTRING toLangString(String text) {
for (LANGUAGESTRING lang : LANGUAGESTRING.values()) {
String langStr = lang.toString();
System.out.println(langStr);
System.out.println(text);
if (text == langStr) {
return lang;
}
}
return null;
}
这是打印出来的内容。这不是我的整个 LANGUAGESTRING 枚举,但您可以从这里得到要点。它应该返回语言字符串,对吧?看看第 5 行和第 6 行是相同的吗?即使它返回它,它也会打破循环,对吗?
[14:41:45] GodToBelieverPrayerWhenNoItemNeed
[14:41:45] GodToBelieverPrayingWeak
[14:41:45] GodToBelieverPrayerTooSoon
[14:41:45] GodToBelieverPrayingWeak
[14:41:45] GodToBelieverPrayingWeak
[14:41:45] GodToBelieverPrayingWeak
[14:41:45] EnterHolyLandInfoYourGod
[14:41:45] GodToBelieverPrayingWeak
最佳答案
使用.equals
而不是==
。
if(text.equals(langStr))
关于java - For 循环返回时不退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37977653/