javaのinitializer
その場で作ってすぐ実行するスレッドをThreadを継承した匿名クラスで実装する。このスレッドをdaemon化するのに、次のようなやり方ではIllegalThreadStateExceptionが発生してしまう。startしたらdaemon化出来ないため。
まあ変数に一度入れてsetDaemonしてやればいいのだが、それでは負けた気がするのでちょっと考えたら、initializer使えばいいのに気付いた。
new Thread() {
@Override
public void run() {
setDaemon(true);
System.out.println("hello");
}
}.start();
new Thread() {
{
setDaemon(true);
}
@Override
public void run() {
System.out.println("hello");
}
}.start();