我在java中有一个对象,它有多个字段,我不知道它们的类型。我正在使用反射来获取字段和它们的值,但它不像它看起来那样工作。通过反射在对象中获取字段和它们的值Java
Object obj = gettingObjectFromSomeMethod();
for (Field field : obj.getClass().getDeclaredFields()) {
field.setAccessible(true);
Object value = field.get(obj);
if (value != null) {
System.out.println(field.getName() + "=" + value);
}
}
输出:
serialVersionUID=8683452581122892189
DEFAULT_CAPACITY=10
EMPTY_ELEMENTDATA=[Ljava.lang.Object;@5649fd9b
DEFAULTCAPACITY_EMPTY_ELEMENTDATA=[Ljava.lang.Object;@6adede5
elementData=[Ljava.lang.Object;@2d928643
size=4
MAX_ARRAY_SIZE=2147483639
但是当我打印的对象时,它提供了以下输出
[{long_name=Los Angeles, short_name=Los Angeles, types=[locality, political]}, {long_name=Los Angeles County, short_name=Los Angeles County, types=[administrative_area_level_2, political]}, {long_name=California, short_name=CA, types=[administrative_area_level_1, political]}, {long_name=United States, short_name=US, types=[country, political]}]
我想这些字段的值。请建议做什么
看来类的_object_的实现一个整洁的toString。为什么不打电话呢? – Jayan
可能第二个输出不显示对象的* fields *,而是显示其字段的解释。 –
@Jayan toString不会有帮助。我只需要得到short_name –