【发布时间】:2015-05-20 10:47:43
【问题描述】:
我正在尝试使用 BeanUtils 重构 bean。 BeanUtils.populate(obj,map) 几乎正是我所需要的,除了我认为我需要一个转换器,因为地图中的一个东西是一个数组列表,但 bean 需要一个数组 []。我试图为它写一个转换器,但它没有进入转换方法。调用 populate 会产生带有消息“参数类型不匹配”的 IllegalArgumentException 豆码:
public class TestObject implements Serializable
{
private double[] data;
public double[] getData() {
return data;
}
public void setData(double[] data) {
this.data = data;
}
}
申请代码:
public static void main(String[] args)
{
ConvertUtils.register(new DoubleArrayConverter(), double[].class);
Map<String, Object> result = getMap();
Class<?> clazz = Class.forName("com.test.TestObject");
Object obj = clazz.newInstance();
BeanUtils.populate(obj, result);
}
转换器代码:
public class DoubleArrayConverter implements Converter
{
//takes in an arraylist and returns a double[]
public Object convert(Class arg0, Object arg1)
{
ArrayList list = (ArrayList)arg1;
double[] data = Doubles.toArray(list);
return data;
}
}
【问题讨论】:
标签: java javabeans apache-commons-beanutils