java RMI 如何返回远程对象的引用

 我来答
无野楼升域醉0t
2018-12-26 · TA获得超过8552个赞
知道小有建树答主
回答量:1498
采纳率:88%
帮助的人:504万
展开全部

利用java的对象序列化和反序列化来传递对象就OK了。

序列化需要实现接口Serializable
需要定义序列化id serialVersionUID;

大致代码如下:

	private static void SerializePerson() throws FileNotFoundException, IOException {
Object obj = new Object();
// ObjectOutputStream 对象输出流,将对象存储到E盘的obj.txt文件中,完成对Object对象的序列化操作
ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream(new File("E:/obj.txt")));
os.writeObject(obj);
System.out.println("序列化成功!");
os.close();
}

private static Object DeserializePerson() throws Exception, IOException {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(new File("E:/obj.txt")));
Object obj = ois.readObject();
System.out.println("反序列化成功!");
return obj;
}

另外有点好奇RMI这玩意多麻烦呀,老早就没啥人用了吧。。。。。。

对了 序列化成JSON格式,接收后再转换回来会更方便!

l7722526
2019-01-20 · TA获得超过2.7万个赞
知道大有可为答主
回答量:2.8万
采纳率:84%
帮助的人:3788万
展开全部
12//接口声明public interface DynamicRemote extends Remote { public double getNowPrice(String stock_code) throws RemoteException; public double getPriceByTime(String time) throws RemoteException; } 123456789101112131415161718192021 //服务端接口实现public class DynamicRemoteImpl extends UnicastRemoteObject implements DynamicRemote { private static final long serialVersionUID = 1L; public DynamicRemoteImpl() throws RemoteException { super(); } @Override public double getNowPrice(String stock_code) { RiseStocks stock=RiseQueue.unordered.get(stock_code); return stock.getPrice(); } @Override public double getPriceByTime(String time) throws RemoteException { System.out.println(time); return 0; }}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
尚学堂科技有限公司
2018-12-29 · 百度知道合伙人官方认证企业
尚学堂科技有限公司
北京尚学堂科技有限公司是一家从事JAVA、大数据、web前端、网络在线教育、互联网架构师、Android、ios技术开发、咨询为一体的软件公司。公司由海外留学人员和国内IT人士创建。
向TA提问
展开全部
建议看一下高淇的Java300集,各方面的内容都讲的非常全面。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式