对象类型解析:instanceof

Sta*_*224 -1 java object instanceof

当我尝试编译并运行这部分代码时,我得到了这个错误:

线程"AWT-EventQueue-0"中的异常java.lang.Error:未解决的编译问题:无法将侦听器解析为变量

at FormPanel.setFormListener(FormPanel.java:273)
at MainFrame.<init>(MainFrame.java:37)
at App$1.run(App.java:10)
Run Code Online (Sandbox Code Playgroud)

代码是这样的:

//  public void setFormListener(DailyFormListener listener) {
//      this.formDayListener = listener;
//      
//  }
public void setFormListener(Object o) {
    if (o instanceof DailyFormListener) {
        this.formDayListener = listener;
    }
    else if (o instanceof GeneFormListener) {
        this.geneFormListener = listener;
    }
    else if (o instanceof LabFormListener) {
        this.labFormListener = listener;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是从第273行开始的.我的问题是,它运行时已经注释掉了上面的部分,但是现在在未注释的部分中.我需要更改什么才能让setFormListener足够通用来处理这个问题?我可以根据需要提供更多代码或信息.

Era*_*ran 5

你的变量o不是listener.

将您的代码更改为:

public void setFormListener(Object o) {
    if (o instanceof DailyFormListener) {
        this.formDayListener = (DailyFormListener)o;
    }
    else if (o instanceof GeneFormListener) {
        this.geneFormListener = (GeneFormListener)o;
    }
    else if (o instanceof LabFormListener) {
        this.labFormListener = (LabFormListener)o;;
    }
}
Run Code Online (Sandbox Code Playgroud)