也许http://dozer.sourceforge.net可以为您提供帮助。它是可通过xml配置的映射库。
我很快尝试了这个:
public class Main { public static void main(String[] args) { Object[] obj = new Object[3]; obj[0] = new Integer(10); obj[1] = new Long(2346246234634L); obj[2] = "Hello"; Collections.singletonList("mapping.xml"); DozerBeanMapper mapper = new DozerBeanMapper(Collections.singletonList("mapping.xml")); PojoObject pojo = mapper.map(obj, PojoObject.class); System.out.println(pojo); } public static class PojoObject { private Integer integer; private Long longg; private String string; public PojoObject() {} public Integer getInteger() { return integer; } public void setInteger(Integer integer) { this.integer = integer; } public Long getLongg() { return longg; } public void setLongg(Long longg) { this.longg = longg; } public String getString() { return string; } public void setString(String string) { this.string = string; } @Override public String toString() { return String.format("Pojo content: %d, %d, %s", integer, longg, string); } }}我的mappings.xml看起来像这样:
<?xml version="1.0" encoding="UTF-8"?><mappings xmlns="http://dozer.sourceforge.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://dozer.sourceforge.net http://dozer.sourceforge.net/schema/beanmapping.xsd"> <mapping> <class-a>java.lang.Object[]</class-a> <class-b>ch.romix.dozertest.Main.PojoObject</class-b> <field> <a>this[0]</a> <b>Integer</b> </field> <field> <a>this[1]</a> <b>Longg</b> </field> <field> <a>this[2]</a> <b>String</b> </field> </mapping></mappings>
不幸的是,它仅将10映射到所有三个PojoObject属性。也许您可以看到错误并使用代码段。也许这是Dozer中的一个错误…我找不到使用的任何示例
this[0]。



