这是我的代码:
final Foo myFoo = new Foo(new Inner() {
@Override
callback(){
myFoo.bar();
}
});
(使用实际的函数名称)
final MyArrayAdapter aa = new MyArrayAdapter(new View.OnClickListener() {
@Override
onClick(){
aa.notifyDataSetChanged();
}
});
Java 给我一个关于 myFoo 可能没有被初始化的错误。有没有什么办法解决这一问题?我可以在构造对象时将回调设置为 null,然后再对其进行更改,但我希望有一种更简洁的方法。有任何想法吗?(如果 Foo 不是我写的并且没有公开接口以稍后更改回调,那么这也行不通)
如果有人好奇,在我的具体场景中,Foo 是一个 ArrayAdapter,而 bar 是 notifyDataSetChanged()。适配器显示的内容取决于数组中项目的值,并且这些值在单击时会发生变化。回调是 clickListener。