gpt4 book ai didi

java - 在 Java 中使用动态名称分配变量

转载 作者:IT老高 更新时间:2023-10-28 11:36:44 24 4
gpt4 key购买 nike

我想在java中分配一组变量如下:

int n1,n2,n3;

for(int i=1;i<4;i++)
{
n<i> = 5;
}

如何在 Java 中实现这一点?

最佳答案

这不是你在 Java 中做事的方式。 Java 中没有动态变量。 Java 变量必须在源代码中声明1.

根据您要实现的目标,您应该使用数组、ListMap;例如

int n[] = new int[3];
for (int i = 0; i < 3; i++) {
n[i] = 5;
}

List<Integer> n = new ArrayList<Integer>();
for (int i = 1; i < 4; i++) {
n.add(5);
}

Map<String, Integer> n = new HashMap<String, Integer>();
for (int i = 1; i < 4; i++) {
n.put("n" + i, 5);
}

可以使用反射来动态地引用在源代码中声明的变量。但是,这适用于作为类成员的变量(即静态和实例字段)。它不适用于局部变量。参见@fyr 的“又快又脏”的例子。

但是,在 Java 中不必要地做这种事情是个坏主意。它效率低下,代码更复杂,并且由于您依赖运行时检查,因此它更脆弱。这不是“具有动态名称的变量”。最好将其描述为对具有静态名称的变量的动态访问。


1 - 这个说法有点不准确。如果使用 BCEL 或 ASM,则可以在字节码文件中“声明”变量。但不要这样做!那就是疯狂!

关于java - 在 Java 中使用动态名称分配变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6729605/

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