【发布时间】:2015-11-26 18:42:34
【问题描述】:
我有一个 Java bean,它有一个字段,而该字段又是另一个 bean
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 正确填充内部 bean?
【问题讨论】:
-
检查 BeanOne.java 的 fieldTwo 类型为 BeanTwo.. 但 setter 和 getter 类型为 String..
-
谢谢。我不小心写了那个。现在修好了。
-
我不相信这是可能的。填充
BeanTwo,然后用它填充BeanOne。
标签: java javabeans pojo apache-commons-beanutils