Java:为什么Observer不是一个接口

Bar*_*rma 3 java interface

import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;

class Client extends Button implements Observer, ActionListener{
...
}
Run Code Online (Sandbox Code Playgroud)

使用上面的代码,当我尝试使用jdk(v 1.7.0_17)编译它时,我收到以下错误:

error: interface expected here
class Client extends Button implements Observer, ActionListener{
                                       ^
Run Code Online (Sandbox Code Playgroud)

而在其他计算机上它工作(我只在2个不同的linux上检查过)就好了.我正在使用Windows 7 Professional 64位.

Jon*_*eet 6

java.util.Observer绝对一个界面.

我怀疑你Observer在同一个包中有一个类Client,这肯定会导致这个问题.

完整的例子:

编译好:

import java.util.*;
import java.awt.*;
import java.awt.event.*;

class Client extends Button implements Observer, ActionListener {
    public void update(Observable x, Object y) {}
    public void actionPerformed(ActionEvent event) {}
}
Run Code Online (Sandbox Code Playgroud)

这不是:

import java.util.*;
import java.awt.*;
import java.awt.event.*;

class Observer {} // Awooga! Awooga!

class Client extends Button implements Observer, ActionListener {
    public void update(Observable x, Object y) {}
    public void actionPerformed(ActionEvent event) {}
}
Run Code Online (Sandbox Code Playgroud)

  • @javabeats他击败了所有人! (2认同)