java - 在java中的变量名末尾 append 一个数字

标签 java variables append variable-names

假设我在我的代码中定义了很多变量,名称如下所示

public javax.swing.JPanel BenderPanel1;
public javax.swing.JPanel BenderPanel2;
public javax.swing.JPanel BenderPanel3;
etc...

所以他们的一般类型是这样的:BenderPanel"NUMBER"

我想访问其中的一些并使用 .setVisible(false); 设置它们的可见性,但是我想访问的那些面板的数量是用户在运行时定义的。

是否有任何可能的方法通过库将数字 append 到每个变量的末尾,以便在 for 循环中访问它,如下所示:

for (int i=1; i<=UserInput; i++)
{
     BenderPanel"i".setVisible(false); // Watch this "i" right there.
}

没有需要首先将它们添加到ArrayList 并使用显而易见的方法来完成?

最佳答案

您不能在 Java 中动态创建成员(您可以通过反射动态访问它们,但这里不需要)。

而不是拥有

public javax.swing.JPanel BenderPanel1;
public javax.swing.JPanel BenderPanel2;
public javax.swing.JPanel BenderPanel3;

public javax.swing.JPanel[] BenderPanels;

public List<javax.swing.JPanel> BenderPanels;

然后您可以使用增强的 for 循环遍历它们。

for (javax.swing.JPanel panel : BenderPanels) {
    // ...
}

关于java - 在java中的变量名末尾 append 一个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14395913/

相关文章:

java - 调用另一个文件的方法

c - 变量只读

c# - -1在编程中的含义

java - 读取 BufferedReader 的内容时出现 NullPointerException,尽管它不为空

java - 如何为 graphql-java-servlet 和 Micronaut Controller 配置 GraphQL servlet 端点?

java - 在 Java 中使用 double 类型进行除法时出错

javascript - 如何在初始功能之前将一个变量重置为原始值?

javascript - 随机化功能的绑定(bind)/分离/append

dictionary - append 的第一个参数必须是 slice;有结构 - golang 映射

pandas - 用新数据 append 一个 pandas 数据框