0
我正在嘗試使用BeanUtils重建一個bean。 BeanUtils.populate(obj,map)幾乎就是我所需要的,除非我認爲我需要一個轉換器,因爲映射中的其中一個東西是arraylist,但是這個bean需要一個數組[]。我試圖爲它編寫一個轉換器,但它沒有進入轉換方法。調用填入給拋出:IllegalArgumentException與消息 '參數類型不匹配' 豆代碼:如何將Arrayutils轉換器用於ArrayList以加倍數組
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;
}
}