对不起,我是Java新手,我正在做朋友项目。我似乎在努力解决这个问题。我正在尝试使用一个非常简单的for循环来迭代我从另一个类获得的几个变量。
for (int i = 0; i < 8; i = i + 1) { // Test and Loop
myarr.add(anotherclass.SVAR+i);
}
我不确定为什么它们最初没有放入数组(也许是因为它更容易以字符串形式访问它们?)。在任何情况下,它们都设置为SVAR0,SVAR1到SVAR7。我怎样才能做到这一点?当我有我的SVAR + i时,它表示没有定义SVAR,这是有道理的,因为它不是。
提前谢谢你!
答案 0 :(得分:4)
您无法像这样动态构建对变量/字段等的引用。编译器需要一个显式引用。
但是,您可能希望使用reflection来派生名称,然后对您的对象进行内省以查找该字段并检索该值。 Here'是一个简单的例子来说明你是如何做到的。
但是我认为更好的对象/字段结构可能更合适(取决于您的用例等)。
答案 1 :(得分:1)
用数组替换变量,或展开循环。你想要什么是可能的,但只有通过虚拟机内省才能付出巨大代价。