- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2018-04-12T14:25:23+00:00","default:haikikyou","haikikyou")
#author("2018-04-12T14:38:58+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]=WrapBean
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/