これが私のコードです:
final Foo myFoo = new Foo(new Inner() {
@Override
callback(){
myFoo.bar();
}
});
(実際の関数名付き)
final MyArrayAdapter aa = new MyArrayAdapter(new View.OnClickListener() {
@Override
onClick(){
aa.notifyDataSetChanged();
}
});
myFoo が初期化されていない可能性があるというエラーが Java から返されます。これを修正する方法はありますか?オブジェクトを構築するときにコールバックを null に設定し、後で変更する可能性がありますが、よりクリーンな方法があることを願っています。何か案は?(また、Foo が私によって作成されたものではなく、後でコールバックを変更するためのインターフェイスを公開しなかった場合も、これは機能しません)
誰かが興味を持っている場合のために、私の特定のシナリオでは、Foo は ArrayAdapter であり、バーは notifyDataSetChanged() です。アダプターによって表示される内容は、配列内のアイテムの値によって異なり、それらの値はクリックされると変化します。コールバックは clickListener です。