我无法解决的接口实现错误

时间:2017-11-05 15:38:57

标签: java interface

我一直在尝试使用rmi实现服务注册。它展示了一个在客户端和服务器之间远程控制的灯泡。

这是我的灯泡界面:

public interface RMILightBulb extends java.rmi.Remote{

      public void on() throws java.rmi.RemoteException{}
      public void off() throws java.rmi.RemoteException{}
      public boolean isOn() throws java.rmi.RemoteException{}
}

这是我尝试实现RMILightBulb接口的地方:

    public class RMILightBulbImpl extends java.rmi.server.UnicastRemoteObject 
    implements RMILightBulb {

    public RMILightBulbImpl() throws java.rmi.RemoteException{

          setBulb(false);
    }

    private boolean lightOn;

    public void on() throws java.rmi.RemoteException{
         setBulb(true);
    }

    public void off() throws java.rmi.RemoteException{
         setBulb(false);
    }


    public boolean isOn() throws java.rmi.RemoteException{
         return getBulb();
    }

    public void setBulb(boolean value){
         lightOn = value;
    }

    public boolean getBulb(){
         return lightOn;
    }


 }

尝试编译时,我收到此错误:

    error: RMILightBulbImpl is not abstract does not override abstract method isOn() in RMILightBulb

我尝试过使用@Override注释但仍遇到此问题。对此的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

错误。它应该是这样的:

public interface RMILightBulb extends java.rmi.Remote {

      void on() throws java.rmi.RemoteException;
      void off() throws java.rmi.RemoteException;
      boolean isOn() throws java.rmi.RemoteException;
}

为什么要打扰RMI? CORBA死了。世界已转向网络服务,因为简单而开放的胜利。