Java 从一个POJO列表转换为另一个POJO列表

Java 从一个POJO列表转换为另一个POJO列表,java,guava,Java,Guava,我有一个Java中的POJO列表,需要将其转换为另一种类型的POJO列表。两个POJO都有两个字符串字段。有没有比只遍历原始列表并向结果列表中添加新项更好的方法?我知道在Java8中我可以编写一个实现apply方法的函数,但我使用的是Java7。在Java7中有没有更有效的方法?下面是示例代码 final List<Tracking> list = new ArrayList<>(); for (DJTracking djTracking : trackingInfor

我有一个Java中的POJO列表,需要将其转换为另一种类型的POJO列表。两个POJO都有两个字符串字段。有没有比只遍历原始列表并向结果列表中添加新项更好的方法?我知道在Java8中我可以编写一个实现apply方法的函数,但我使用的是Java7。在Java7中有没有更有效的方法?下面是示例代码

final List<Tracking> list = new ArrayList<>();

for (DJTracking djTracking : trackingInformation) {
    list.add(new Tracking(djTracking.getTrackingNumber(), djTracking.getTrackingUrl()));
}

return list;
final List=new ArrayList();
用于(DJTracking DJTracking:trackingInformation){
添加(新跟踪(djTracking.getTrackingNumber(),djTracking.getTrackingUrl());
}
退货清单;

一个简单的方法是破坏您提到的代码,我的意思是用第一类编写一个方法将其转换为第二类,这可能不会提高性能,但会更干净

public Tracking convertToTracking(){
       return new Tracking(this.getTrackingNumber(), this.getTrackingUrl());
}
在任何您想要的地方,您都可以简单地转换列表:

final List<Tracking> list = new ArrayList<>();

for (DJTracking djTracking : trackingInformation) {
    list.add(djTracking.convertToTracking());
}

return list;
final List=new ArrayList();
用于(DJTracking DJTracking:trackingInformation){
添加(djTracking.convertToTracking());
}
退货清单;

一个简单的方法是破坏您提到的代码,我的意思是用第一类编写一个方法将其转换为第二类,这可能不会提高性能,但会更干净

public Tracking convertToTracking(){
       return new Tracking(this.getTrackingNumber(), this.getTrackingUrl());
}
在任何您想要的地方,您都可以简单地转换列表:

final List<Tracking> list = new ArrayList<>();

for (DJTracking djTracking : trackingInformation) {
    list.add(djTracking.convertToTracking());
}

return list;
final List=new ArrayList();
用于(DJTracking DJTracking:trackingInformation){
添加(djTracking.convertToTracking());
}
退货清单;

新建ArrayList(Iterables.transform(trackingInformation,new Function(){/*实现它*/})
DJTracking可能是
Tracking
的一个子类型?如果是这样,除了将其添加到列表中之外,您不需要做其他任何事情。否则,我不确定您还可以做多少其他事情来简化它。您可以使用两种方法
Tracking convert(DJTracking)创建实用程序类
DJTrackingConverter
列出convertAll(Iterable);
然后调用
返回DJTrackingConverter.convertAll(trackingInformation);
不能使用函数,因为我正在使用java 7DJTracking不是trackinging的子类型我认为RC所指的类是Guava库的一部分,可以在java 7中使用。
new ArrayList(Iterables.transform(跟踪信息,新函数(){/*实现它*/})
DJTracking可能是
Tracking
的一个子类型?如果是这样,除了将其添加到列表中之外,您不需要做其他任何事情。否则,我不确定您还可以做多少其他事情来简化它。您可以使用两种方法
Tracking convert(DJTracking)创建实用程序类
DJTrackingConverter
列出convertAll(Iterable);
然后调用
返回DJTrackingConverter.convertAll(trackingInformation);
不能使用函数,因为我正在使用java 7DJTracking不是trackinging的子类型我认为RC所指的类是Guava库的一部分,可以在java 7中使用。