公开课地球仪
public static int line1[] = {1,4,7,10,13};
public static int line2[] = {1,5,7,11,13};
public static int line2[] = {1,5,7,11,13};
公开课测试
for(i=0;i<3;i++)
{
String temp = "line"+i;
System.out.println(globe.temp);// how to get array hole value
}
如何获取globe类中的数组值?我需要从给定行号的 for 循环中获取特定的数组值。
最佳答案
在代码的当前状态下,这需要反射。但是,如果您需要做这样的事情,也许 Globe
类的设计一开始就不正确。
如果您想按照向我们展示的方式使用它们,则需要在代码中表达行之间的链接。使用二维数组怎么样?
public static final int[][] lines = {
{1,4,7,10,13},
{1,5,7,11,13},
{1,5,7,11,13}
};
然后这样使用它:
for (int[] line : Globe.lines) {
System.out.println(Arrays.toString(line));
}
Note that the Globe class name should be capitalized, to be consistent with Java conventions.
为了举例说明,以下是在您无法控制 Globe
类的情况下如何使用反射实现此目的:
for (int i = 0; i < 3; i++) {
String fieldName = "line" + i;
Field lineField = Globe.class.getDeclaredField(fieldName);
int[] line = lineField.get(null); // null for static fields
System.out.println(Arrays.toString(line));
}
关于java - 如何动态显示数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33581417/