Javafx и утечки памяти с помощью addListener - PullRequest
0 голосов
/ 21 марта 2019

У меня есть следующая вспомогательная функция:

public static void setClearOnFocus(TextField textField) {
    textField.focusedProperty().addListener((obs, wasFocused, isNowFocused) -> {
        if(isNowFocused)
            textField.clear();
    });
}

Может ли это вызвать утечку памяти из-за "addListener"?

Насколько я понимаю, addListener хранит ссылку на лямбду. TextField находится на сцене. Когда стадия закрыта, ничто не будет содержать ссылку на Stage -> TextField -> lambda, поэтому все будет собрано.

Но что, если этот этап создан внутри начальной стадии. stage.close () вызывается, чтобы закрыть его. Будет ли он очищаться из памяти при появлении gc (кроме начальной стадии)?

правый

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