BeanUtils — метод «описать», возвращающий неверное значение массива

Я хочу преобразовать класс компонента в карту (ключ = имя члена, значение = значение члена).

Я использую метод BeanUtils.describe(beanClass);

(Изменить: я использую commons-beanutils 1.8.3, jdk 1.6.0_20, на commons-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();
            }
        }
    }
  • Ожидаемый результат:

key=myList,value=[first_value,second_value]

ключ=класс,значение=класс $Demo

  • Но реальный вывод:

key=myList,value=[first_value]

ключ=класс,значение=класс $Demo

Как вы можете видеть, массив содержит два значения, но вывод (и карта) содержит только одно, почему??

Спасибо,

Бенни


person user1097157    schedule 14.12.2011    source источник


Ответы (1)


Я запускаю образец кода на своем компьютере, и результат следующий: .

person xuanyuanzhiyuan    schedule 14.12.2011
comment
Спасибо за ваш ответ, я попытался запустить код с помощью commons-beanutils 1.5, и он работает. Вероятно, в 1.8.3 есть ошибка. - person user1097157; 14.12.2011