【发布时间】:2014-02-13 23:20:56
【问题描述】:
我正在转换我的 GWT 项目的服务器端使用 Scala 而不是 Java。我有许多 RPC servlet,它们执行 DB 查找,然后将结果映射到 ArrayList,其中可能是 SomeDTO 之类的类
override def listTrips(): util.ArrayList[TripRoleDTO] = {
val trd = new TripRoleDTO
trd.setRoleType(RoleType.TripAdmin)
trd.setTripName(sessionDataProvider.get().getSessionUser.getEmail)
val res: util.ArrayList[TripRoleDTO] = new util.ArrayList[TripRoleDTO]()
res.add(trd)
res
}
而不是
@Override
public ArrayList<TripRoleDTO> listTrips() {
final SessionData sessionData = sessionDataProvider.get();
final List<TripRole> tripsForUser = tripAdminProvider.get().listTripRolesForUser(sessionData.getSessionUser().getId());
return newArrayList(transform(tripsForUser, DTOConverter.convertTripRole));
}
请注意,Java 实现实际上进行了 DB 调用(我仍在 Scala 中弄清楚这一点),但它通过 Google Guava 的 Iterables.transform 方法进行 DTO 转换。
由于 DTO 对象需要是 GWT 客户端可以使用的 .java 文件,因此将我的 Scala 域对象转换为 DTOS 的优雅方法是什么?
【问题讨论】: