序列化 – 当我使用ArrayList时,如何保持GWT试图包含每个可序列化的类
发布时间:2020-07-09 02:44:14 所属栏目: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 – Spring – 如果服务返回409 HTTP代码,则重试请求
- java – Spring Data Rest:RepositoryEventHandler方法未被
- JPA 2.1:Java 8 Date / Time API简介
- java – 通过’ContentResolver’删除文件,而不是通过’fil
- Java SAXParser:不同于`localName`和`qName`
- 日期到UTC格式Java
- Java正则匹配中文的方法实例分析
- java-是否有一种简单的方法来使Apache Tomcat在部署后自动重
- java – 我不能分发JAXB封闭的代码?
- java – LinkedBlockingQueue put vs offer