特別かもしれないし、そうじゃないかもしれない。
メソッド内で使用可能なローカル クラスを見ています。
class Foo {
static void bar(){
class MyRunnable implements Runnable {
public void run() {
System.out.println("No longer anonymous!");
}
};
Thread baz = new Thread(new MyRunnable());
}
}
次のような匿名の内部クラスの使用を見てきました。
class Foo {
static void bar(){
Thread baz=new Thread(new Runnable(){
public void run(){
System.out.println("quux");
}
}
}
}
これは技術的には内部クラス (匿名ですが) であり、静的メソッドで定義されています。個人的には、Runnable を実装するネストされた静的クラスを作成して、次のようにします。
baz = new Thread(new MyRunnable());
は次のようにMyRunnable
定義されます。
class Foo {
static void bar(){
// SNIP
}
static class MyRunnable implements Runnable {
public void run() {
System.out.println("No longer anonymous!");
}
}
}