final ArrayAdapter adapter = new ArrayAdapter(...);
listView.setOnItemClickListener(new AdapterView.OnitemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent,View view,int position,long id){
Word word = adapter.getItem(position);
}
});
匿名の内部クラスが「final」と宣言されるべき「adapter」オブジェクトを呼び出す理由を理解できませんか?これはルールですか?私はそれを覚えていますか? finalと宣言された変数が変更なしで参照を保存することはわかっています。しかし、上記の例では、参照の変更はありません。最終的なオブジェクトに対してメソッドを呼び出すだけです。外部オブジェクトがfinalで宣言されたときに匿名内部クラスが外部オブジェクトを呼び出す理由
は、効果的な最終 – Jerry06
匿名内部クラスは、シンプルで効果的な方法で、いくつかの厄介な問題を解決するためです。また、最終クラスを拡張することができない間に、アダプタクラスによってイベントが処理されるときに、より効率的なコードを作成することもできます。 – Tehmina