序列化 – 当我使用ArrayList时,如何保持GWT试图包含每个可序列化的类
发布时间:2020-07-09 02:37:04  所属栏目:Java  来源:互联网 
            导读:我在GWT中有一个需要返回列表的RPC服务.列表可以填充各种类型的对象,所有这些对象都是可序列化的,并且所有对象都在我的服务中引用,因此它们应该可用于GWT RPC.但是,除非我使用通用类型参数(例如ArrayList String),否则GWT会给出警告: Return type: java.util
                
                
                
            | 
                         我在GWT中有一个需要返回列表的RPC服务.列表可以填充各种类型的对象,所有这些对象都是可序列化的,并且所有对象都在我的服务中引用,因此它们应该可用于GWT RPC.但是,除非我使用通用类型参数(例如ArrayList< String>),否则GWT会给出警告: 
Return type: java.util.ArrayList
    java.util.ArrayList
      Verifying instantiability
         java.util.ArrayList
            [WARN] Checking all subtypes of Object which qualify for serialization`
Adding '465' new generated units
 
 基本上,我只想要一种声明List或ArrayList而不使用GWT的方法,试图为类路径上的每个可序列化对象生成代码.没有办法告诉GWT我知道我在做什么,不要疯了吗? 解决方法让我谈谈David Nouls所说的话. GWT编译器无法读取您的头脑,所以当您无法指定返回类型可以是什么,GWT假定它可以是任何东西,并且必须做额外的工作,以确保可以发生在Javascript客户端.你真的应该指定能够返回哪些类型.只有这样做是有利的,因为编译器将生成更优化的代码,而不是生成代码来处理“465个处理单元”,因此您的下载速度将更快. 我建议创建一个名为“BaseResult”的空接口,然后让您返回的对象都实现该接口. /**
 * Marker interface 
 */
public interface BaseResult {
} 
 然后你指定你的rpc方法的返回类型是ArrayList: public interface MyRpcService extends RemoteService {
  public ArrayList<BaseResult> doRpc();
} 
 然后确保您的返回对象都实现该接口. public class UserInfo implements BaseResult {}
public class Order implements BaseResult {} 
 现在,GWT编译器将为您的代码更容易的优化时间. (编辑:莱芜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!  | 
                  
相关内容
- 我应该使用播放框架还是普通Java EE
 - java IO流 之 输出流 OutputString()的使用
 - 使用langdetect进行Java语言检测 – 如何加载配置文件?
 - GSON实现Java对象的JSON序列化与反序列化的实例教程
 - MyBatis存储过程、MyBatis分页、MyBatis一对多增删改查操作
 - java基于Des对称加密算法实现的加密与解密功能详解
 - 浅析Java编程中类和对象的定义
 - java – 如何忽略JUnit / easymock中的意外方法调用?
 - java – 错误消息“尝试在堆栈上分割长或双”指示?
 - java – hashCode和equals为Collections.unmodifiableColle
 
