[英]Loop the variables from another class
有人知道或有一个想法如何简化从另一个类获取多个变量的代码。 以下是我的程序的结构:
Data.java
//composed of 30 variables with almost the same variable name
String dat1 = "";
String dat2 ="";
.
.
.
String dat30="";
Get.java
//here, I need to get the variables from Data.java and put inside the loop
for(int i=0; i<=30; i++) {
String dat1 = getField(Data.dat1).getData();
}
无论如何要从另一个类循环dat1〜dat30变量? 预先感谢您的帮助;)
您可以使用Java Reflection 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
,这将使事情变得容易得多。
如果可以存储Data
类的变量,则可以将它们存储在类似dat[30]
的数组中,而不是将其存储在30个不同的变量中,例如dat1
,dat2,...。 这样,您只需在循环中调用dat[i]
即可访问字段。
但是,如果无法存储除其他变量以外的其他字段,则可以使用Class.getField方法按名称获取该字段。 在那种情况下,您可以像getField("dat"+i)
这样调用来获取字段。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.