Я хочу преобразовать класс bean в карту (key = имя члена, value = значение члена).BeanUtils - метод 'describe' return Неверное значение массива
Я использую метод BeanUtils.describe (beanClass);
(Edit: Я использую Викисклада BeanUtils 1.8.3, JDK 1.6.0_20, на Викисклада BeanUtils 1.5 он работает)
Проблема заключается в том, что возвращаемое значение неверно, (карта содержат только первый элемент из массива),
код:
public class Demo {
private ArrayList<String> myList = new ArrayList<String>();
public Demo() {
myList.add("first_value");
myList.add("second_value");
}
public ArrayList<String> getMyList() {
return myList;
}
public void setMyList(ArrayList<String> myList) {
this.myList = myList;
}
public static void main(String[] args) {
Demo myBean = new Demo();
try {
Map describe = BeanUtils.describe(myBean);
Iterator it = describe.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pairs = (Map.Entry) it.next();
System.out.println(String.format("key=%s,value=%s", (String) pairs.getKey(), (String) pairs.getValue()));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
- ожидаемый выход:
ключ = MyList, значение = [FIRST_VALUE, SECOND_VALUE]
ключ = класс, значение = класс $ Demo
- Но реальный выход:
ключ = myList, значение = [first_value]
ключ = класс, значение = класс $ Демо
Как вы можете видеть, массив содержит два значения, но вывод (и карта) содержит только один, почему?
Спасибо,
Бенни
Спасибо за ваш отзыв, Я попытался запустить код с помощью commons-beanutils 1.5, и он работает. Вероятно, в 1.8.3 есть ошибка. – user1097157