2015-11-07 66 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)); 
}