Xel*_*ian 6 java list add arraylist listener
我想在java中创建自己的ArrayList实现,可以在列表更改时进行侦听,并在发生这种情况时执行操作.从我所读到的,我明白我不能扩展ArrayList然后添加监听器.
我想在类中使用MyList作为带有public修饰符的变量,因此用户可以直接更改它并在更改时执行操作.
class MyList extends ArrayList<object>.... { ... }
class UseOfMyList {
public MyList places = new MyList<Object>();
places.add("Buenos Aires");
//and to be able to do that
List cities = new ArrayList<Object>();
cities.add("Belmopan");
places = cities;
Run Code Online (Sandbox Code Playgroud)
那么如何创建以及何时添加,删除或传递另一个列表到MyList要执行的操作?
dre*_*ore 11
你不能通过扩展来做到这一点ArrayList,因为它没有内置的通知机制(而且,因为它已被声明final,因此无法扩展).但是,您可以通过创建自己的实现你想要的结果List的实施和增加你的"监听"功能相一相的add()和remove()方法:
class MyList<T>{
private ArrayList<T> list;
public MyList(){
list = new ArrayList<>();
...
}
public void add(T t){
list.add(t)
//do other things you want to do when items are added
}
public T remove(T t){
list.remove(t);
//do other things you want to do when items are removed
}
}
Run Code Online (Sandbox Code Playgroud)