それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

クラス名.this

ある人のAndroidのソース見てたら 「クラス名.this」がいっぱいあって焦った。こんなの動くのかと思って実験してみた。

public class Test{
	public Test(){
		
	}
	public void show(){
		System.out.println(  Test.this )
	}
	public String toString(){
		return "this is a test";
	}

	public static void main(String args[]){
		Test a = new Test();
		a.show();

	}
}

クラス名.this

public class Test{
///(略
  System.out.println(  Test.this )
///(略
}

なるほど、キモい。

うごかしてみた

takuya@air:~/Desktop$ javac Test.java 
takuya@air:~/Desktop$ java Test 
this is a test

普通に動くのね。

スタティックthis の参照先が、コンテキストに依って切り替わるんだろ、と考えたら違和感はないねー。
匿名クラス、コールバック関数がバンバン登場するときに便利そうっていう感想を言ったら、「Androidがすでにそうなっとる」と言われた。なるほどねー無知ですいません