我具有以下帮助功能:
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发生时是否会从内存中清除所有内容(主要阶段除外)?
对吗?