2015-11-07 61 views
1

公共类地球如何显示阵列动态

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 
} 

如何获得在全球范围类的数组值。我需要获取特定的数组值。从for循环给定的行号。我不知道如何提出这个问题。请帮我...

回答

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)); 
} 

注意,地球的类名应该大写,以与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)); 
}