使用addListener

时间:2019-03-21 18:50:36

标签: java javafx

我具有以下帮助功能:

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

是否会由于“ addListener”而导致内存泄漏?

据我所知,addListener保留对lambda的引用。 TextField在舞台上。当舞台关闭时,没有任何东西将保存对舞台-> TextField-> lambda的引用,因此将全部收集。

但是,如果此阶段在主要阶段内部创建,该怎么办。调用stage.close()将其关闭。 gc发生时是否会从内存中清除所有内容(主要阶段除外)?

对吗?

0 个答案:

没有答案