Простой вопрос: событие ValueChanged в Java - PullRequest
0 голосов
/ 20 марта 2011

Есть ли в Java событие, которое срабатывает при изменении значения?Как в этом примере

public class Example{
    public String var1 = "Something";
    public Int var2 = 4;
}

Если var1 или var2, их значения изменяются для любого события, которое должно сработать.

Ответы [ 3 ]

3 голосов
/ 20 марта 2011

Ответ не в том, чтобы публично раскрывать свои поля. Сделайте поля приватными, представьте методы getter и setter, и вы можете вызывать все что угодно внутри setter, если значение изменилось.

public class Example {
    private String var1 = "Something";

    public String getVar1() {
        return var1;
    }

    public void setVar1(String var1) {
        // TODO: null guards
        if (var1.equals(this.var1)) {
            // No-op - no need to do anything
            return;
        }
        this.var1 = var1;
        notifyListenersOfChangeToVar1();
    }
}
2 голосов
/ 20 марта 2011
0 голосов
/ 20 марта 2011

Я думаю, вы, возможно, ищете шаблон проектирования "наблюдатель" ( Википедия )

Это реализовано в Java через расширение Obserable и наличие объектов, которые хотят получать уведомления, реализуют интерфейс Observer .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...