#author("2018-04-13T11:03:32+00:00","default:haikikyou","haikikyou")
[[Java]]

#contents

* Commons BeanUtils [#qfbab3fe]

- JavaBean規約に沿ったオブジェクト操作を容易にしてくれる様々な機能を提供してくれるライブラリ
- Apache Commonsプロジェクトの1つ

* インストール [#h820eee5]

** maven [#ef1eb58a]

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

#geshi(xml,number){{{
<dependency>
    <groupId>commons-beanutils</groupId>
    <artifactId>commons-beanutils</artifactId>
    <version>1.9.3</version>
</dependency>
}}}

&label(warn){参考};[[MvnRepository >https://mvnrepository.com/artifact/commons-beanutils/commons-beanutils]] - &size(11){&color(gray){on https://mvnrepository.com/artifact/commons-beanutils/commons-beanutils};};

** 個別にjarを設置する [#jee4532c]

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

- commons-beanutils-1.9.3.jar
- commons-logging-1.2.jar
- commons-collections-3.2.2.jar

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


* 例 [#fc4dbea5]

#geshi(java,number){{{
package cb;

import java.io.Serializable;
import java.util.Arrays;
import java.util.HashMap;

import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.DynaBean;
import org.apache.commons.beanutils.LazyDynaList;

public class LazyDynaListTest {

    public static class MyBean implements Serializable {
        private String name;
        private int age;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public int getAge() {
            return age;
        }

        public void setAge(int age) {
            this.age = age;
        }

        @Override
        public String toString() {
            return String.format("name:%s, age:%d", name, age);
        }
    }

    public static void main(String[] args) throws Exception {
        LazyDynaList list = new LazyDynaList();

        MyBean bean = new MyBean();

        // beanにフィル
        BeanUtils.populate(bean, new HashMap<String, Object>() {
            {
                put("name", "hoge");
                put("age", 100);
            }
        });

        // OK, サイズは自動拡張
        // [0]=LazyDynaBean, [0]=LazyDynaBean, [0]=WrapDynaBean(MyBean Instance)
        list.set(2, bean);

        // DynaBeanとして取得
        Arrays.stream(list.toArray(new DynaBean[0]))
                .forEach(v -> {
                    System.out.println(String.format("name: %s, age: %d",
                            v.get("name"), v.get("age")));
                });
    }
}

/*
name: null, age: null
name: null, age: null
name: hoge, age: 100
*/
}}}

&label(warn){参考}; Maven Repository
- [[commons-beanutils>https://mvnrepository.com/artifact/commons-beanutils/commons-beanutils]] - &size(11){&color(gray){on https://mvnrepository.com/artifact/commons-beanutils/commons-beanutils};};
- [[commons-logging>https://mvnrepository.com/artifact/commons-logging/commons-logging]] - &size(11){&color(gray){on https://mvnrepository.com/artifact/commons-logging/commons-logging};};
- [[commons-collections>https://mvnrepository.com/artifact/commons-collections/commons-collections]] - &size(11){&color(gray){on https://mvnrepository.com/artifact/commons-collections/commons-collections};};

* 参考リンク [#e0f0c93f]

- http://commons.apache.org/proper/commons-beanutils/


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