異なるメソッドで定義されたインナー・クラス内で非 final 変数を参照する

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
chin

異なるメソッドで定義されたインナー・クラス内で非 final 変数を参照する

#1

投稿記事 by chin » 13年前

現在、JAVAでタイトルのようなことをやりたいと考えています。
もちろん、JAVAではできないのですが、どうにかうまく実現することはできないでしょうか?
以下に実現したいコードを記述します。

よろしくお願いします。

コード:

class aaa {
	CheckBox[] cb = new CheckBox[4];
	boolean[]  bl = new boolean [4];
	
	void setter () {
		for (int i=0; i<cb.length; ++i) {
			cb[i].setOnClickListener( new View.OnClickListener() {

				@Override
				public void onClick(View v) {
					cb[i].setEnabled(bl[i]);
				}				
			});
		}
	}
}

ISLe
記事: 2650
登録日時: 15年前
連絡を取る:

Re: 異なるメソッドで定義されたインナー・クラス内で非 final 変数を参照する

#2

投稿記事 by ISLe » 13年前

匿名クラスではなくなりますけど。

コード:

class aaa {
	CheckBox[] cb = new CheckBox[4];
	boolean[]  bl = new boolean [4];

	void setter () {
		class _OnClickListener implements View.OnClickListener {
			int i;
			public _OnClickListener(int i) {
				this.i = i;
			}
			@Override
			public void onClick(View v) {
				cb[i].setEnabled(bl[i]);
			}
		}
		for (int i=0; i<cb.length; ++i) {
			cb[i].setOnClickListener(new _OnClickListener(i));
		}
	}
}

chin

Re: 異なるメソッドで定義されたインナー・クラス内で非 final 変数を参照する

#3

投稿記事 by chin » 13年前

>ISLeさん
返信が遅れて申し訳ありませんでした。
まさにほしい回答でした。いつもご回答ありがとうございます。

閉鎖

“C言語何でも質問掲示板” へ戻る