繁体   English   中英

从另一个类循环变量

[英]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[] dataList<String> data ,这将使事情变得容易得多。

如果可以存储Data类的变量,则可以将它们存储在类似dat[30]的数组中,而不是将其存储在30个不同的变量中,例如dat1 ,dat2,...。 这样,您只需在循环中调用dat[i]即可访问字段。

但是,如果无法存储除其他变量以外的其他字段,则可以使用Class.getField方法按名称获取该字段。 在那种情况下,您可以像getField("dat"+i)这样调用来获取字段。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM