インナークラス内の変数を変更する必要があり、「違うメソッドで定義されたインナークラス内の最終変数を参照できません」というエラーが発生しました。インナークラス非最終変数java
void onStart(){
bt.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
int q = i;
}
});
}
私はすぐに私が変更したいすべてのものを保有するクラスを作り、内部クラスの外のクラスの最終版を作っ
class temp{
int q;
}
void onStart(){
final temp x = new temp();
bt.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
x.q = i;
}
});
}
これは私が必要なもののようですし、それ私はこれが正しく問題を回避する方法であるかどうか疑問に思っています。また、私のクラスに名前をつけるのにtemp
という言葉を使うのは本当に嫌です。私のクラスのためのよりわかりやすい名前を作るために私がしたことのための実際のプログラミングの用語はありますか?
ブラボー。もう一つの良い点は、この内部クラスがより拡張性と再利用可能であることです。 IMO、匿名の内部クラスはほとんど常に悪い考えです。 – user949300
アクションスタイルクラス、つまり入力に基づいてアクションを実行できる特定のイベントのハンドラとして機能します。彼の例であるGUIプログラミングでは非常に一般的です。この場合を除いて、問題を複雑にするクラス間の相互作用があります。 – Robin
これは私が探していたものです!ありがとう! –