2015-11-07 2 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 
} 

Как получить значение массива в классе земного шара. Мне нужно получить конкретные значения массива. from для номера данной строки. Я не знаю, как задать этот вопрос. Пожалуйста, помогите мне ...

ответ

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)); 
} 
Смежные вопросы