【问题标题】:Is there a way to concatenate variable names into a single variable name that already exists, to then be passed in to a function? [duplicate]有没有办法将变量名连接成一个已经存在的变量名,然后传递给一个函数? [复制]
【发布时间】:2023-01-08 23:54:32
【问题描述】:

为糟糕的问题措辞道歉。 我试图避免在这段代码和许多其他类似情况下重复......

if (MainMenu.play.getProgress() < 12) {
     level12.setEnabled(false);
}
if (MainMenu.play.getProgress() < 11) {
     level11.setEnabled(false);
}
if (MainMenu.play.getProgress() < 10) {
     level10.setEnabled(false);
}

// ... repeats down to level2.

我尝试过的事情是:

for (int i=12; i>1; i--) {
     if (MainMenu.play.getProgress() < i) {
          level+n.setEnabled(false);
     }
}

但它们似乎不起作用。 有没有一种有效的方法可以做到这一点?

【问题讨论】:

  • 你了解数组吗?

标签: java


【解决方案1】:

用 3 行重写 sn-p 怎么样:

level12.setEnabled(MainMenu.play.getProgress() >= 12);
level11.setEnabled(MainMenu.play.getProgress() >= 11);
level10.setEnabled(MainMenu.play.getProgress() >= 10);
...

作为替代方案,您可以使用数组:

boolean[] levels = new boolean[13];

for(int i = 1; i < levels.length; i++)
    levels[i] = MainMenu.play.getProgress() >= i;

【讨论】:

    猜你喜欢
    • 2020-09-22
    • 2019-08-15
    • 1970-01-01
    • 2020-09-02
    • 1970-01-01
    • 2020-12-03
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    相关资源
    最近更新 更多