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 {}

その他はのちほど。


TS-5548 Database Development with Jython, Hibernate, and SQLAlchemy

TS-6304 How to Port phoneME™ Advanced Software to Google Android, iPhone, OpenMoko, LiMO, and More

TS-5274 Groovy on a Cloud: Testing Java™ Platform, Enterprise Edition (Java EE Platform) Applications on Amazon EC2

2日目は、Closure => Web Beans => Jython, Hibernate, SQLAlchemy => Android, iPhone, OpenMoko

Lunch : 大渕さん・きしださん・さくらばさん・せろ