有人知道或了解如何在从另一个类获取多个变量时简化代码。 以下是我的计划结构:
$ctrl
无论如何从另一个类循环dat1~dat30变量? 提前感谢那些愿意帮助的人;)
答案 0 :(得分:3)
您可以使用Java反射API从Data
对象中读取值,如下所示:
Data data = new Data();
//load data object with values
for(int i=1;i<=30;i++) {//iterate
Field f = data.getClass().getDeclaredField("data"+i);//get each field
f.setAccessible(true);
System.out.println((String)f.get(data));//read value
}
但是,我强烈建议您重新构建课程,以便它包含String[] data
或List<String> data
,这将使事情变得更加轻松。
答案 1 :(得分:2)
如果可以存储Data
类的变量,那么不要存储30个不同的变量,如dat1
,dat2,...将它们存储在像dat[30]
这样的数组中。通过这样做,您只需在循环中调用dat[i]
即可访问这些字段。
但是,如果无法存储除不同变量之外的字段,则可以使用Class.getField方法按名称获取字段。在这种情况下,您可以通过调用getField("dat"+i)
。