【发布时间】:2015-08-18 04:11:03
【问题描述】:
我正在尝试编写一个 rmi 应用程序。
我有以下结构:
RemoteLobby 中的每个方法都会引发 RemoteException。 ILobby 中的方法没有。
编译时出现如下错误:
java.rmi.server.ExportException:远程对象实现了非法的远程接口;嵌套异常是:
类和远程接口之间可以有接口吗?
- 阿苏
【问题讨论】:
我正在尝试编写一个 rmi 应用程序。
我有以下结构:
RemoteLobby 中的每个方法都会引发 RemoteException。 ILobby 中的方法没有。
编译时出现如下错误:
java.rmi.server.ExportException:远程对象实现了非法的远程接口;嵌套异常是:
类和远程接口之间可以有接口吗?
【问题讨论】:
类和远程接口之间可以有接口吗?
是的,当然,但这意味着它扩展了Remote,这意味着它本身就是Remote,这意味着它必须遵守Remote接口所要求的语义。
RemoteLobby中的每个方法都会抛出RemoteException.ILobby中的方法不要。
远程接口的语义是所有方法都必须声明为抛出RemoteException或其超类之一。所以你必须调整ILobby.中的方法在这种情况下,我也会让ILobby直接扩展Remote,以及通过继承,以明确这一点。
【讨论】:
我通过从接口中删除依赖项解决了我的问题,并在我的类中实现了两者。
【讨论】: