Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
mkudelya
Зарегистрирован: 12.03.2008 Сообщения: 4
|
Добавлено: Ср Мар 12 2008 15:06 Заголовок сообщения: Java. Взятие значение переменной по ее имени. |
|
|
Здравствуйте!
Есть поле в классе:
private int NUMBER_VAR = 10;
надо написать примерно так и получить в ответ 10;
System.out.print (getValue("NUMBER_VAR"));
Нигде так и не нашел как это можно сделать. |
|
Вернуться к началу |
|
|
Yello
Зарегистрирован: 09.03.2006 Сообщения: 107
|
Добавлено: Ср Мар 12 2008 16:26 Заголовок сообщения: |
|
|
То есть, у тебя имеется объект такого класса, в поле NUMBER_VAR которого (в поле объекта) текущее значение 10? |
|
Вернуться к началу |
|
|
mkudelya
Зарегистрирован: 12.03.2008 Сообщения: 4
|
Добавлено: Ср Мар 12 2008 16:52 Заголовок сообщения: |
|
|
У меня есть суперкласс A в котором находится это поле, B наследует A и в одном из методов B нужно получить значение поля. |
|
Вернуться к началу |
|
|
Yello
Зарегистрирован: 09.03.2006 Сообщения: 107
|
Добавлено: Ср Мар 12 2008 17:57 Заголовок сообщения: |
|
|
Я, конечно, не спец по java.
А в C++ есть слово this, это - указатель на вызвавший (твою функцию) объект (это - указатель на структуру).
Поэтому, там бы это значение лежало бы в:
(*this).NUMBER_VAR,
или (что то же самое), в this->NUMBER_VAR,
или же (что опять то же самое) просто NUMBER_VAR.
(всё вышесказанное верно внутри тела метода класса). |
|
Вернуться к началу |
|
|
mkudelya
Зарегистрирован: 12.03.2008 Сообщения: 4
|
Добавлено: Ср Мар 12 2008 19:01 Заголовок сообщения: |
|
|
Мне нужно немного другое. продемонстрирую на PHP примере.
$a = 'hello';
в переменной "a" есть текстовое значение "hello"
echo ${"a"};
конструкция ${"a"} буквально означает $a, т.е. береться текст внутри кавычек и рассмотривается как имя переменной
Вот мне и в яве нужно нужно найти такую конструкцию или иной способ |
|
Вернуться к началу |
|
|
Mytilus Galloprovincialis
Зарегистрирован: 30.08.2005 Сообщения: 358 Откуда: откуда все люди родятся
|
Добавлено: Ср Мар 12 2008 19:13 Заголовок сообщения: |
|
|
mkudelya писал(а): | Вот мне и в яве нужно нужно найти такую конструкцию или иной способ |
Не помню точно, но, кажется, это функция eval(). |
|
Вернуться к началу |
|
|
mkudelya
Зарегистрирован: 12.03.2008 Сообщения: 4
|
Добавлено: Ср Мар 12 2008 20:44 Заголовок сообщения: |
|
|
Mytilus Galloprovincialis писал(а): | mkudelya писал(а): | Вот мне и в яве нужно нужно найти такую конструкцию или иной способ |
Не помню точно, но, кажется, это функция eval(). |
Как вариант.
Я нашел выход. Common это класс, в котором находится числовая переменная abc, ее содержимое можно распечатать таким способом.
Class c = Class.forName("Common");
Field f = c.getDeclaredField("abc");
System.out.print(f.getInt(c)); |
|
Вернуться к началу |
|
|
tellary
Зарегистрирован: 29.01.2008 Сообщения: 7
|
Добавлено: Ср Июл 02 2008 18:42 Заголовок сообщения: |
|
|
Объясните мне в чем выигрыш по сравнению с
Код: | System.out.println(Common.abc) | ?
Здесь одно из двух:
- либо моя тупость.
- либо ваше "горе от ума".
Очень редко, когда использование reflection'a в яве является оправданным. |
|
Вернуться к началу |
|
|
|