Я пытаюсь восстановить компонент, используя BeanUtils. BeanUtils.populate (obj, map) - это почти то, что мне нужно, но я думаю, что мне нужен конвертер, поскольку одна из вещей на карте - это arraylist, но bean-файл нуждается в массиве []. Я попытался написать для него конвертер, но он не переходит в метод преобразования. Вызов Заполнить дает IllegalArgumentException с сообщением 'аргумент типа рассогласования' Bean код:Как сделать beanutils конвертер для 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;
}
}