Java

Commons BeanUtils

インストール

maven

mavenでインストールする場合は、以下のような指定となる。

  1. <dependency>
  2.     <groupId>commons-beanutils</groupId>
  3.     <artifactId>commons-beanutils</artifactId>
  4.     <version>1.9.3</version>
  5. </dependency>

参考MvnRepository - on https://mvnrepository.com/artifact/commons-beanutils/commons-beanutils

個別にjarを設置する

jarファイルを個別にインストールする場合、1.9.3では以下のようになる。

commons-loggingやcommons-collectionsが必要となる。commons-collectionsは、4からgroupとartifactが変更されているので注意する。1.9.3では、commons-collectionsを利用する。

/*
 * 1. Mapの配列を扱う
 */
System.out.println("[1]");

// Mapの配列を作成
HashMap[] myMapArray = new HashMap[1];
myMapArray[0] = new HashMap<String, Object>();
myMapArray[0].put("name", "mapValue");
// Mapの配列を追加して初期化
LazyDynaList lazyList = new LazyDynaList(myMapArray);
// リサイズ時に失敗しないように要素のタイプを指定しておく。
// この指定がないと、すでに要素がある状態でelementTypeを設定しようとしてエラーとなる。(この時点では、まだelementTypeがない)
// DynaClassはLazyDynaMapであり、このDynaClassはMap型のオブジェクトを生成して返す。
lazyList.setElementType(HashMap.class);
//lazyList.setElementType(TreeMap.class);

// サイズ拡張で、新しい要素オブジェクトを得る、LazyDynaMap型である。
DynaBean newElement = (DynaBean) lazyList.get(lazyList.size());
newElement.set("name", "arrayValue");
DynaBean element = (DynaBean) lazyList.get(lazyList.size() - 1);
System.out.println(element.get("name"));

Map<String, String>[] maps = (Map<String, String>[]) lazyList.toArray();
Arrays.stream(maps).forEach(m -> {
    m.forEach((k, v) -> System.out.println(k + ":" + v));
});


/*
 * 2. Listを扱う
 */
System.out.println("[2]");

List<Map<String, String>> myList = new ArrayList<>();
lazyList = new LazyDynaList(myList);
// サイズ拡張, elementTypeはLazyDynaBeanである
newElement = (DynaBean) lazyList.get(lazyList.size());
newElement.set("name", "listValue");
element = (DynaBean) lazyList.get(lazyList.size() - 1);
// この時点でelementTypeはLazyDynaBeanとなっている。
System.out.println(element.get("name"));

// elementTypeのオブジェクトを追加する。
LazyDynaBean newBean = new LazyDynaBean();
newBean.set("name", "elementValue");
lazyList.add(newBean);
element = (DynaBean) lazyList.get(lazyList.size() - 1);
System.out.println(element.get("name"));

// LazyDynaBeanでない型の追加はエラーとなる。
HashMap<String, Object> map = new HashMap<String, Object>();
lazyList.add(map);
// Exception in thread "main" java.lang.IllegalArgumentException: Element Type class java.util.HashMap doesn't match other elements class org.apache.commons.beanutils.LazyDynaBean

/*
[1]
arrayValue
name:mapValue
name:arrayValue
[2]
listValue
elementValue
Exception in thread "main" java.lang.IllegalArgumentException: Element Type class java.util.HashMap doesn't match other elements class org.apache.commons.beanutils.LazyDynaBean
	at org.apache.commons.beanutils.LazyDynaList.transform(LazyDynaList.java:689)
	at org.apache.commons.beanutils.LazyDynaList.add(LazyDynaList.java:288)
	at cb.LazyDynaListSample.main(LazyDynaListSample.java:122)
*/

参考 Maven Repository

参考リンク


トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
目次
ダブルクリックで閉じるTOP | 閉じる
GO TO TOP