1

Beanクラスをマップに変換したい(key =メンバーの名前、value =メンバーの値)。

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]

key = class、value = class $ Demo

  • しかし、実際の出力は次のとおりです。

key = myList、value = [first_value]

key = class、value = class $ Demo

ご覧のとおり、配列には2つの値が含まれていますが、出力(およびマップ)には1つしか含まれていません。なぜですか?

ありがとう、

ベニー

4

1 に答える 1

0

私のコンピューターでコード サンプルを実行すると、出力は次のようになります。 .

于 2011-12-14T09:28:24.163 に答える