我正嘗試在這個例子中所描述的擴展的Java的ArrayList支持事件: http://www.exampledepot.com/egs/java.util/CustEvent.htmlArrayList的擴展支持事件
的問題是,Java是報告說「不能讓一個靜態參照非在下面的行-static型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
@mprabhat,這是由於正在構建的Android應用程序的設計要求所致。在同步多線程進程中更改ArrayList時,需要通知此Android應用程序。 – regisxp