【初心者】Java質問・相談スレッド79【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0475デフォルトの名無しさん
2006/01/19(木) 13:08:34そうか? なんか 468 が final ローカル変数を C/C++ の static ローカル変数
みたいなものと勘違いしてるみたいだったから (スタックが云々のあたり)。
>>474
コピーした時点で別の変数だから final が付いてるのとは関係ないだろ。
「どちらかの値が変更されたら、見た感じ相手の変数にもその値が反映されて
そうで紛らわしいから」 って理由でこうなってるならなんとなく納得。
ちなみに
class Foo{
void f(final x){
new Thread(){
public void run(){System.out.println(x);}
}.start();
}
}
は↓とほぼ等価。javap で見るか jad で逆コンパイルしてみれ。
class Foo{
void f(final x){
new Foo$1(x).start();
}
}
class Foo$1 extends Thread{
final int val$x;
A$1(int x){val$x =x;}
public void run(){System.out.println(val$x);}
}
■ このスレッドは過去ログ倉庫に格納されています