[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends-ml 12456] JDK 7 で導入検討 中のクロージャ
高橋(徹)です。
Neal Gafter氏のブログに、JDK 7で導入検討中のクロージャのコード例が
記載されています。
http://gafter.blogspot.com/2006/08/use-cases-for-closures.html
() { 文... }
という記述になるみたいですね。ちょっと違和感ありますが、
匿名クラスを書くよりシンプルです。クロージャはコンパイル時に
匿名クラスに書き換えられるようなので、糖衣構文な機能です。
void sayHelloInAnotherThread(Executor ex) {
ex.execute(() {
System.out.println("Hello");
});
}
これは、コンパイル後
void sayHelloInAnotherThread(Executor ex) {
ex.execute(new Runnable() {
public void run() {
System.out.println("Hello");
}
});
}
また、上記ブログでは、さらに同期に関して興味深い使用例が取り上げ
られています。C++のRAIIに匹敵する機能です。
withLock(lock) {
...
}
java.util.concurrentのLockをsynchronzied文同様に囲ってしまう
機能です。これは、コンパイル後、
try {
...
} finally {
lock.unlock();
}
に書き換えられるようです。
#ざっと流し読みしただけなので間違いあるかもしれません。
--
TAKAHASHI,Toru
torutk@xxxxxxxxxxxx