gpt4 book ai didi

java - 访问名为 variablename+number 的变量

转载 作者:行者123 更新时间:2023-11-29 03:52:33 25 4
gpt4 key购买 nike

我一直想知道:

  • 如果我有 8 个 JLabel,例如 label1、label2、label3...
  • 我收到一条消息,显示在其中一个和 1 到 8 之间的整数

有没有什么巧妙的方法可以在不使用开关或一堆 if-elses 的情况下访问名为 label+number 的变量?如果是这样,它是否比 switch/if-elses 方法更有效?

我正在为 Java 打标签,但我认为这对任何经典语言来说都是一个有趣的问题。

最佳答案

你可以使用reflection为它,但它会遭受糟糕的表现,或者你可以使用 Map<Integer,JLabel> 来做到这一点,这是用您的对象预先计算的。

对于更一般的情况,您可能正在寻找反射。

反射用法的简单例子:

public class TestSomething {
public int elem1 = 1;
public int elem2 = 2;
public int elem3 = 3;
public int elem4 = 4;
public static void main(String[] str) throws NoSuchFieldException,IllegalAccessException {
TestSomething test = new TestSomething();
int num = 3;
Field field = test.getClass().getField("elem" + num);
System.out.println(field.get(test));
}
}

关于java - 访问名为 variablename+number 的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8062534/

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