beanクラスをマップに変換したい(key =メンバー名、value =メンバー値)。BeanUtils - 'describe'メソッドが不正な配列値を返す
私はBeanUtils.describe(beanClass)メソッドを使用しています。
(編集:Iコモンズ-々BeanUtils 1.5それが動作上のコモンズ-々BeanUtils 1.8.3、JDK 1.6.0_20、使用しています)
問題は、戻り値が間違っているということである、(マップアレイからの最初の項目を含む)、
コード:
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]
キー=クラス、値=クラス$デモ
- しかし、本当の出力は次のようになります。
キー= myList、value = [first_value]
key = class、value = class $デモ
配列には2つの値が含まれていますが、出力(およびマップ)には1つしか含まれていないことがわかります。
おかげで、
ベニー
ご回答ありがとうございます 私はcommons-beanutils 1.5でコードを実行しようとしましたが、それは動作します。おそらく1.8.3にバグがあります。 – user1097157