Как сделать слушателя, который слушает изменения в TreeMap? - PullRequest
1 голос
/ 25 июля 2011

Я делаю графический интерфейс, который спрягает испанские глаголы. Он использует TreeMap в качестве основной структуры данных, которая заполнена экземплярами класса Verb. Каждое создание включает в себя строку, которая содержит инфинитивную форму глагола, например, «хаблар» или «эскрибир». В графическом интерфейсе есть функция, которая позволяет пользователю вводить новый глагол, вводя его инфинитив и его английский перевод.

Я хочу знать, как создать слушатель, который будет запускать некоторый код каждый раз, когда новый глагол добавляется или удаляется из TreeMap. Как бы я поступил так?

1 Ответ

5 голосов
/ 25 июля 2011

Вы можете создать подкласс класса TreeMap, например.

public class MyTreeMap<K, V> extends TreeMap<K, V> {
    @Override
    public V put(K key, V val) {
        V ret = super.put(key, val);
        myAddCallback(key, val);
        return ret;
    }

    @Override
    public V remove(K key) {
        V ret = super.remove(key);
        myRemoveCallback(key);
        return ret;
    }
}

Другой (значительно более сложный) вариант - проверить AspectJ , AOP -на основе JRE.

...