【发布时间】:2012-06-13 18:51:44
【问题描述】:
我正在尝试扩展 Java ArrayList 以支持此示例中描述的事件: http://www.exampledepot.com/egs/java.util/CustEvent.html
问题是 java 在下面的行中报告 'Cannot make a static reference to the non-static type MyEvent':
public interface MyEventListener extends EventListener {
public void myEventOccurred(MyEvent evt);
}
我认为这与泛型有关,但我真的不知道如何解决这个问题。有人可以帮助我吗?
这是我正在尝试做的全部来源:
public class ArrayList<E> extends java.util.ArrayList<E> {
private static final long serialVersionUID = 1L;
// Declare the event. It must extend EventObject.
public class MyEvent extends EventObject {
private static final long serialVersionUID = 1L;
public MyEvent(Object source) {
super(source);
}
}
// Declare the listener class. It must extend EventListener.
// A class must implement this interface to get MyEvents.
public interface MyEventListener extends EventListener {
public void myEventOccurred(MyEvent evt); //Error occurs here
}
}
【问题讨论】:
-
制作你的内部类
static。 -
为什么要扩展 ArrayList 以实现自定义事件
-
@mprabhat,这是由于正在构建的 Android 应用程序的设计要求。当 ArrayList 发生更改时,需要在同步的多线程进程中通知此 Android 应用程序。
标签: java generics arraylist extends