序列化 – 当我使用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