我正在尝试创建一个可以包含其他可以访问或更改的变量的数组(或集合),并将更改反映在数组之外。
boolean autoTakeStepMode = false;
boolean[] settings = {autoTakeStepMode};
String[] settingsMessages = {"Enable auto-take-step mode (y/n)?"};
String response = "";
for (int i = 0; i < settingsMessages.length; i++) {
response = ui.getYesNoResponse(settingsMessages[i]);
if (response.equals("y"))
settings[i] = true;
else if (response.equals("n"))
settings[i] = false;
}
当我尝试访问autoTakeStepMode时,它总是等于其默认值false
。
答案 0 :(得分:1)
类型不应该是原始类型。如果你想改变变量autoTakeStepMode,你应该用class包装它。
public class AutoTakeStepMode {
boolean isOpen;
}
答案 1 :(得分:0)
当我尝试访问autoTakeStepMode时,它总是等于它 默认值,false
这是实际行为。如果您想更新autoTakeStepMode
的值,请将其与settings[i]
一起更新。
for (int i = 0; i < settingsMessages.length; i++) {
response = ui.getYesNoResponse(settingsMessages[i]);
if (response.equals("y"))
settings[i] = true;
else if (response.equals("n"))
settings[i] = false;
autoTakeStepMode = settings[i];
}