如何动态显示数组

时间:2015-11-07 09:58:38

标签: java

公共班级地球

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循环给定行号。我不知道怎么问这个问题。请帮帮我......

1 个答案:

答案 0 :(得分:3)

在代码的当前状态下,这需要反射。但是,如果您需要做这样的事情,可能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));
}
  

请注意,Globe类名称应大写,以与Java约定保持一致。

为了举例,以下是在您无法控制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));
}