Как создать прослушиватель, который отслеживает изменения в древовидной карте?

StackOverflow https://stackoverflow.com/questions/6820354

  •  26-10-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

Вы можете создать подкласс класса 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;
    }
}

Другим (значительно более сложным) вариантом было бы проверить Аспект j, ан АОП-основан JRE.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top