JavaOne2008 2日目
TS-5579 Closures Cookbook
Javaでのクロージャ “BGGA Closures” のセッション。
javaのaをλにするところがなんともハイセンスです
{ => Jλvλ }
以前エントリした、http://d.hatena.ne.jp/yone098/20080411/1207842405
C#のusingやPythonのwithについてのエントリだが以下のように書くことが出来、
セッションでは当時のエントリのコメント欄にでたwithLockも紹介されてました。
interface ClosableBlock<R, C extends Closeable, throws X>{ R invoke(C c) throws X; } <R, C extends Closeable, throws X> R using(C c, CloseableBlock<R, ? super C, X> block) throws X, IOException { try { return block.invoke(c); } finally { c.close(); } }
↑これは、こう↓書ける
<R, C extends Closeable, throws X> R using(C c, { C ==> R throws X } block) throws X, IOException { try { return block.invoke(c); } finally { c.close(); } }
使い方
using (InputStream s : makeInputStream()) {
// do something with s
}
その他はのちほど。
TS-5286 Introduction to Web Beans
Gavin King, JBoss
おもしろいセッションだった。
Stereotypesの定義の例
public @Secure @Transactional @RequestScoped @Named @Production @Stereotype @Retention(RUNTIME) @Target(TYPE) @interface Action {}
その他はのちほど。