Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Scala代码轻松创建JavaDTO对象的实例_Java_Scala_Gwt - Fatal编程技术网

从Scala代码轻松创建JavaDTO对象的实例

从Scala代码轻松创建JavaDTO对象的实例,java,scala,gwt,Java,Scala,Gwt,我正在使用Scala而不是Java转换GWT项目的服务器端。我有许多RPC servlet,它们进行DB查找,然后将结果映射到ArrayList,在ArrayList中可能存在类似SomeDTO的类 override def listTrips(): util.ArrayList[TripRoleDTO] = { val trd = new TripRoleDTO trd.setRoleType(RoleType.TripAdmin) trd.setTripName(

我正在使用Scala而不是Java转换GWT项目的服务器端。我有许多RPC servlet,它们进行DB查找,然后将结果映射到ArrayList,在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));
}
@覆盖
公共ArrayList listTrips(){
final SessionData SessionData=sessionDataProvider.get();
最终列表tripsForUser=tripAdminProvider.get().listTripRolesForUser(sessionData.getSessionUser().getId());
返回newArrayList(transform(tripsforser,DTOConverter.convertTripRole));
}
请注意,Java实现实际上进行了DB调用(我仍然在Scala中找到了这一点),但它通过GoogleGuava的方法进行了DTO转换

由于DTO对象需要是.java文件,GWT客户端可以使用一种优雅的方式将Scala域对象转换为DTO?

使用GWT自动创建DTO。DTO可以通过接口和@ProxyFor注释简单地定义,请参见提供的链接中的示例

如果由于某种原因使用请求工厂不是替代方案,那么考虑使用映射域对象到DTOs,这经常与GWT.

一起使用。