Значение переменной Java в качестве имени новой переменной - PullRequest
2 голосов
/ 05 февраля 2012

Мне было интересно, есть ли в Java какой-либо способ дать новой переменной имя, которое является значением другой переменной.Приведенный ниже код является нерабочим примером того, что я пытаюсь сделать.

int a = 0;
while(true){
    String (a) = "newValue";
    a = a + 1;
}

или

String b = "newVariableName";
int (b) = 1;

Спасибо за предоставленную помощь.

Ответы [ 6 ]

3 голосов
/ 05 февраля 2012

Нет, это невозможно. Можно создать новый объект и добавить его в массив или в какой-то список. Затем вы можете ссылаться на новый объект по нижнему индексу. Таким грубым примером может быть:

Object[] a = new Object[30]; 

for(int i = 0; i < 30; i++)
{
a[i] = new Object();
}

и тогда вы можете использовать

a[some number].someFunction();

Если вы подумаете об этом, как компилятор может узнать, каким будет значение определенной истинной переменной вне фактического времени выполнения программы? Однако вряд ли вам нужно делать то, что вы хотите.

1 голос
/ 05 февраля 2012

Вы пытаетесь создать массив, список или словарь.

0 голосов
/ 06 февраля 2012

Я не думаю, что рефлексия поможет, потому что нет способа создать новый экземпляр Field. Так что-то вроде

Map<String,Field> 

не будет работать. Используйте вместо этого javascript:)

0 голосов
/ 05 февраля 2012

Вы не можете создавать имена динамических переменных в Java.Я бы порекомендовал разместить эти переменные на карте со строкой в ​​качестве ключа.Ключом может быть любая строка, которую вы хотите.

0 голосов
/ 05 февраля 2012

Нет, в Java нет возможности сделать это. Самое близкое, что вы могли бы сделать, это создать код во время выполнения и загрузить новый класс с полями, созданными с динамическими именами.

Возможно, вы захотите рассмотреть что-то более простое, например, экземпляр HashMap.

0 голосов
/ 05 февраля 2012

Вы не можете сделать это.Используйте словарь или карту для хранения значений.

...