2015-05-03 1 views
-1

Ниже приведен класс:Как получить тип переменной объекта, если я знаю имя переменной в java?

class Test{ 
    int x; 
} 

Теперь, скажем, я создать объект класса:

Test testObj = new Test(); 

Кроме того, у меня есть переменная String, которая имеет то же значение, что и переменная класса:

String var = "x"; 

Теперь из этого объекта testObj есть способ, что если я поставить имя переменной через строку var, и получить тип данных переменной x?

+2

Вы можете через отражение, но, возможно, есть лучший способ сделать это. Что такое прецедент? – engineercoding

+0

вы можете использовать метод getClass, но его можно использовать для объектов, а не по значениям, –

+0

Согласитесь с @engineercoding, это выглядит как [проблема XY] (http://meta.stackexchange.com/questions/66377/ what-is-the-xy-problem) - вы спрашиваете о конкретном решении, но вы не объясняете, почему вы на самом деле хотите это сделать, и, вероятно, это конкретное решение не лучший способ решить настоящую проблему. – Jesper

ответ

0

С помощью отражения вы можете сделать

Class aClass = MyObject.class 
Field field = aClass.getField("someField"); 

MyObject objectInstance = new MyObject(); 

Object value = field.get(objectInstance); 

field.set(objetInstance, value); 
+0

getField() возвращает только ** публичные поля **. –

1

Да, с помощью отражения:

String type = testObj.getClass().getDeclaredField(var).getType().getName();