gpt4 book ai didi

java - 从监听器访问非最终对象

转载 作者:太空宇宙 更新时间:2023-11-04 06:44:49 25 4
gpt4 key购买 nike

我有一个 Foo 的 ArrayList,而 foo 有一个 Bar IntegerProperty 和一个 String BarName。

我想要的是从监听器访问对象 Foo,然后更改 BarName,例如:

for(String b : BarNameList){
Foo f = new Foo();
f.setBarName(b);
f.addListener(new ChangeListener<Number>(){
@SuppressWarnings("rawtypes")
@Override
public void changed(ObservableValue<? extends Number> o,
Number oldVal, Number newVal) {
// I need to get which f is from the FooList here
// So I can, for example:
f.setBarName(f.getBarName() + newVal);
}
});
FooList.add(f);
}

我收到错误,因为我的 f 不是最终的。

据我了解this question是相关的,并且通过我得到的建议方法:

在范围内无法访问 Foo 类型的封闭实例。

如何在 changed() 方法中获取 f 的实例?

最佳答案

除非将变量 f 定义为 Final,否则无法在匿名类的 changed() 方法中访问变量 f。

final Foo f = new Foo();

关于java - 从监听器访问非最终对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24148399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com