gpt4 book ai didi

java - 保留循环变量值的问题

转载 作者:行者123 更新时间:2023-12-01 07:03:21 26 4
gpt4 key购买 nike

我在这段代码中出现错误,我将公共(public)类变量 mCountryCode 声明为 String。

 for (mCountryCode : isoCountryCodes) {
locale = new Locale("", mCountryCode);
if(locale.getDisplayCountry().equals(mSpinner.getSelectedItem())) {
mCountryCode = locale.getCountry();
break;
}
}

如果我使用 for (String mCountryCode : isoCountryCodes) ,那么错误就会消失,但我无法在 break 后维持 mCountryCode 字符串值; 行。

最佳答案

是的,enhanced for statement只是不行。它总是声明一个新变量。

您可以使用:

for (String tmp : isoCountryCodes) {
mCountryCode = tmp;
...
}

...尽管坦白说这是一件很奇怪的事情。在我看来,您并不是真的想将每个值分配给mCountryCode,而只想将匹配的值分配给mCountryCode:

for (String candidate : isoCountryCodes) {
Locale locale = new Locale("", candidate);
if (locale.getDisplayCountry().equals(mSpinner.getSelectedItem())) {
mCountryCode = candidate;
break;
}
}

请注意,这不会分配给现有 locale 变量,而是在每次迭代中声明一个新变量。这几乎肯定是一个更好的主意...如果需要,您始终可以分配给 if 语句中的字段。

关于java - 保留循环变量值的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34932151/

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