У меня есть компонент Java, который имеет поле, которое в свою очередь, является еще одним компонентов-BeanUtils превращающего java.util.Map к вложенным боба
public class BeanOne {
private String fieldOne;
private BeanTwo fieldTwo;
public String getFieldOne() {return this.fieldOne;}
public void setFieldOne(String fieldOne){this.fieldOne = fieldOne}
public BeanTwo getFieldTwo() {return this.fieldTwo;}
public void setFieldTwo(BeanTwo fieldTwo){this.fieldTwo = fieldTwo}
}
public class BeanTwo {
private String fieldOne;
public String getFieldOne() {return this.fieldOne;}
public void setFieldOne(String fieldOne){this.fieldOne = fieldOne}
}
Я пытаюсь передать карту в BeanUtils, чтобы попытаться преобразовать следующие карта в BeanOne
Map beanOneMap = new HashMap<String, Object>();
beanOneMap.put("fieldOne", "fieldOneValue");
Map beanTwoMap = new HashMap<String, Object>();
beanTwoMap.put("fieldOne", "fieldOneValue");
beanOneMap.put("fieldTwo", beanTwoMap);
BeanOne beanOne = new BeanOne();
BeanUtils.populate(beanOne, beanOneMap);
Но выдает ошибку говоря - Cannot invoke BeanOne.setFieldTwo on bean class 'class Bean' - argument type mismatch - had objects of type "java.util.HashMap" but expected signature "BeanTwo"
Как я могу использовать BeanUtils, чтобы правильно заполнить внутренний боб?
Проверьте поле BeanOne.javaДва типа BeanTwo .. Но сеттеры и геттер типа String .. – Naren
спасибо. Я случайно написал это. теперь это исправлено. – Skynet
Я не верю, что это возможно. Заполните «BeanTwo», затем заполните «BeanOne» этим. –