1

我试图将列表中对象内的属性映射到数组,我想知道是否可以在没有自定义转换器的情况下执行此操作。

public class Kid(){
    List<Toy> toys;
}
public class Toy(){
     String name;
     String brand;
}
public class ConvertedKid(){
    String[] toysNames;
}

在 mapper.map(aKid, ConvertedKid.class) 之后,我希望将 convertKid.toysNames 作为一个字符串数组,仅包含其名称。

谁能帮我这个?谢谢!!

4

1 回答 1

0

正如您所说,您可以使用自定义转换器来完成。

我发现的另一个解决方案是覆盖 Toy 的 toString() 方法

玩具类

public class Toy{
  String name;
  String brand;

  // getters and setters ...

  @Override
  public String toString() {
    return this.name;
  }
}

映射

  <mapping>
    <class-a>xxx.xxx.Kid</class-a>
    <class-b>xxx.xxx.ConvertedKid</class-b>
      <field>
    <a>toys</a>
    <b>toysNames</b>
      </field>
  </mapping>

我测试了它。有用。

于 2012-10-18T08:36:59.343 回答