【问题标题】:no suitable constructor found for UnicastRemoteObject()没有为 UnicastRemoteObject() 找到合适的构造函数
【发布时间】:2016-07-09 20:30:16
【问题描述】:

从 javase api 8 开始,rmic 已弃用。因此,最好通过将对象导出为动态生成stubs

  1. 继承 UnicastRemoteObject 并调用 UnicastRemoteObject() 构造函数。
  2. 子类化UnicastRemoteObject 并调用UnicastRemoteObject(port) 构造函数。

所以我首先调用了UnicastRemoteObject(port) 构造函数,但是得到了编译错误: no suitable constructor found for UnicastRemoteObject(int) 然后我尝试调用UnicastRemoteObject() 构造函数,仍然得到相同的编译错误。可能出了什么问题?

编辑:我的代码:

import java.rmi.*;
import java.rmi.server.*;
public class MyServer extends UnicastRemoteObject implements MyRemote {
    MyServer()throws RemoteException {
        new UnicastRemoteObject(5000);
    }
    //Other methods...
}

准确引用的错误:

没有找到适合 UnicastRemoteObject(int) 的构造函数 构造函数 java.rmi.server.UnicastRemoteObject.UnicastRemoteObject() 不适用 (实际参数列表和形式参数列表的长度不同) 构造函数 java.rmi.server.UnicastRemoteObject.UnicastRemoteObject(int,java.rmi.server.RMIClientSocketFactory,java.rmi.server.RMIServerSocketFactory) 不适用 (实际参数列表和形式参数列表的长度不同)

我的问题是,当 java.rmi.server.UnicastRemoteObject 出现在 javase8 api 中时,为什么编译器会出错?

【问题讨论】:

    标签: java constructor rmi


    【解决方案1】:
    1. 继承 UnicastRemoteObject 并调用 UnicastRemoteObject() 构造函数。

    错了。这样做需要rmic

    1. 继承 UnicastRemoteObject 并调用 UnicastRemoteObject(port) 构造函数。

    正确。您遗漏了几个案例:

    1. 子类化UnicastRemoteObject 并调用UnicastRemoteObject(int, RMIClientSocketFactory, RMIServerSocketFactory) 构造函数(可能反过来)。

    2. 继承UnicastRemoteObject并调用UnicastRemoteObject.exportObject(Remote, int)方法。

    3. 不继承 UnicastRemoteObject 并调用 UnicastRemoteObject.exportObject(Remote, int, RMIClientSocketFactory, RMIServerSocketFactory) 方法(同样可能反过来)。

    编辑

    MyServer()throws RemoteException {
        new UnicastRemoteObject(5000);
    }
    

    这不是你调用基类构造函数的方式。正确的形式是:

    MyServer() throws RemoteException {
        super(5000);
    }
    

    这是相当基本的。

    【讨论】:

    • 我不这么认为。请检查,我现在已经包含了 src 代码。此外,如果我构建自己的UnicastRemoteObject 类,UnicastRemoteObject() 构造函数就会运行。
    • @ChaitanyaBhardwaj 仅当您提供了这样一个构造函数,关于它的证据为零。现在您已经发布了代码,请参阅编辑。
    猜你喜欢
    • 2015-11-14
    • 1970-01-01
    • 1970-01-01
    • 2013-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-17
    • 2017-03-30
    相关资源
    最近更新 更多