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

class Client extends Button implements Observer, ActionListener{
...
}

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

error: interface expected here
class Client extends Button implements Observer, ActionListener{
                                       ^

而在其他计算机上它可以工作(我只在 2 个不同的 linux 上检查过)就好了。我使用的是 64 位 Windows 7 专业版。

4

1 回答 1

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) {}
}

这不会:

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) {}
}
于 2013-03-13T14:10:55.967 回答