Re: いまさらだけど、Java言語にはクロージャーがない
id:ryoasaiさんと先日会社で話した内容が、「いまさらだけど、Java言語にはクロージャーがない」にまとめられたけれど、関数リテラルが利用できるという文法の話と、引数以外の外部変数(自由変数)が参照できるという機能の話が混ざっている気がします。
前者の意味では現在の Java 6 にはクロージャがないけれど、後者の意味では Java でも内部クラスで同様なことが実現できます。他の言語が内部的にクロージャをどう実現しているか詳しくは知りませんが、クロージャを導入する土台は既にあると考えています。C/C++ でクロージャを実現するよりはかなり敷居が低いかと。
「想像以上にガラパゴス化した日本のIT業界?」で、Groovy と Scala の比較もされているようなので、クロージャに関して、Java、Scala、Groovy の違いを整理しておこうと思います。
続きを読むメタモデルなしで JPA 2.0 の Criteria API を使う
仕様書のサンプルや Web の記事を見ると、JPA 2.0 の Criteria API を使うにはメタモデルを作らないといけないかと一瞬思うけれど、属性名を文字列で指定してもいいんですね。
メタモデルを使用する場合、
@Entity public class Customer { @Id Long id; String name; ... }
というエンティティに対して、
@StaticMetamodel(Customer.class) public class Customer_ { public static volatile SingularAttribute<Order, Long> id; public static volatile SingularAttribute<Order, String> name; ... }
のようなメタモデルを作って、
@PersistenceContext EntityManager em; CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaQuery<Customer> cq = cb.createQuery(Customer.class); Root<Customer> r = cq.from(Customer.class); cq.select(r).where(cb.equal(r.get(Customer_.name), "hoge")); List<Customer> result = em.createQuery(cq).getResultList();
のようにするみたいですが、
メタモデルを作らずに、
@PersistenceContext EntityManager em; CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaQuery<Customer> cq = cb.createQuery(Customer.class); Root<Customer> r = cq.from(Customer.class); cq.select(r).where(cb.equal(r.get("name"), "hoge")); List<Customer> result = em.createQuery(cq).getResultList();
としても良いみたいです。
自社フレームワークなどで使う場合はこちらの方が使いやすそう。
というか、アプリケーションのプログラマにこれを使いこなせっていうのは厳しくないかな? 素直に JPQL や SQL 使った方が簡単そう。
参考
- JSR 317: Java Persistence 2.0
http://jcp.org/en/jsr/detail?id=317 - Dynamic, typesafe queries in JPA 2.0 - developerWorks
http://www.ibm.com/developerworks/java/library/j-typesafejpa/ - NetBeans6.8 BetaでJPA2.0を試してみる。 - ひたすらプログラミング日記
http://d.hatena.ne.jp/hayassh/20091025/1256477014
直交表作成ツール
複数条件の組合せテストで、少ないテストケースでいかに網羅率を上げて品質を確保するかという目的で、直交表というツールが利用できます(詳細は最後の参考文献を参照)。
テストの条件(因子)に対してバリエーション(水準)が2の直交表は比較的簡単に作成できます。ただし、実業務で使用するとなると、水準が10くらいは欲しいところ。そこで、勉強がてら直交表を作成するツールを作成してみました。
言語は Ruby です。作成したデータも一部置いています。
http://svn.sourceforge.jp/svnroot/glad/trunk/oa-ruby/
http://sourceforge.jp/projects/glad/svn/view/trunk/oa-ruby/
使用方法
直交表の大きさを2の対数で第1引数に指定します。水準は一般的に使いそうなものを出力します。
直交表の大きさを第1引数に指定します。水準は一般的に使いそうなものを出力します。
prompt> ruby mkOA.rb 16 "OA(16; 4^5)" ,1,2,3,4,5 1,0,0,0,0,0 2,0,1,1,1,1 ... 16,3,3,0,1,2
水準を変更したい場合は同じく2の対数で指定することができます。
水準を変更したい場合は第2引数に L^n の形式で指定することができます。
prompt> ruby mkOA.rb 32 "8^1,4^2" "OA(32; 8^1, 4^2, 2^18)" ,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 2,0,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1 ... 32,7,3,0,0,1,0,1,1,0,0,1,0,1,1,0,1,1,1,0,0,1
つぶやき
参考文献
ソフトウェアテストHAYST法入門 品質と生産性がアップする直交表の使い方
- 作者: 吉澤正孝/秋山浩一/仙石太郎
- 出版社/メーカー: 日科技連出版社
- 発売日: 2007/07/26
- メディア: 単行本
- 購入: 3人 クリック: 86回
- この商品を含むブログ (21件) を見る
- 作者: リー・コープランド,宗雅彦
- 出版社/メーカー: 日経BP社
- 発売日: 2005/11/03
- メディア: 単行本
- 購入: 24人 クリック: 539回
- この商品を含むブログ (51件) を見る
参考URL
- HAYST法
http://hayst.com/default.aspx - 直交表を活用したソフトウェアテストの効率化 〜HAYST法の活用〜 (JaSST'05 in Osaka)
http://jasst.jp/archives/jasst05w.html#special - 直交表によるソフトウェアテスト 『HAYST法』の解説と学習
http://www.geocities.jp/ka_hayst/ - A Library of Orthogonal Arrays
http://www2.research.att.com/~njas/oadir/index.html
大人買い
何となく気持ちが大きくなって大人買い。
CYCLE HIT 1991-1997 Spitz Complete Single Collection (初回限定盤12cmCD付)
- アーティスト: スピッツ,草野正宗,笹路正徳,土方隆行
- 出版社/メーカー: ユニバーサルミュージック
- 発売日: 2006/03/25
- メディア: CD
- クリック: 23回
- この商品を含むブログ (220件) を見る
CYCLE HIT 1997-2005 Spitz Complete Single Collection (初回限定盤12cmCD付)
- アーティスト: スピッツ,草野正宗,笹路正徳,白井良明,亀田誠治,棚谷祐一,石田小吉,クジヒロコ
- 出版社/メーカー: ユニバーサルミュージック
- 発売日: 2006/03/25
- メディア: CD
- 購入: 1人 クリック: 17回
- この商品を含むブログ (218件) を見る
- アーティスト: いきものがかり
- 出版社/メーカー: ERJ
- 発売日: 2009/12/23
- メディア: CD
- 購入: 15人 クリック: 149回
- この商品を含むブログ (67件) を見る
- アーティスト: 加藤ミリヤ,m-flo,SIMON,COMA-CHI,TARO SOUL
- 出版社/メーカー: SMR(SME)(M)
- 発売日: 2008/11/05
- メディア: CD
- クリック: 15回
- この商品を含むブログ (12件) を見る
- 出版社/メーカー: ブエナ・ビスタ・ホーム・エンターテイメント
- 発売日: 2003/11/19
- メディア: DVD
- 購入: 12人 クリック: 393回
- この商品を含むブログ (400件) を見る
- 出版社/メーカー: ブエナ・ビスタ・ホーム・エンターテイメント
- 発売日: 2002/10/04
- メディア: DVD
- 購入: 15人 クリック: 700回
- この商品を含むブログ (423件) を見る
- 出版社/メーカー: 任天堂
- 発売日: 2006/01/26
- メディア: Video Game
- 購入: 19人 クリック: 237回
- この商品を含むブログ (697件) を見る
さまよう刃
http://yaiba.goo.ne.jp/
@ヒューマントラストシネマ渋谷
最愛の娘を少年に凌辱され殺された父親が犯人を追う。少年法のあり方を採り上げた東野圭吾の問題作の映画化。
犯行の残虐さや被害者の父親の感情は、ぼかされていてあまり強調されておらず、事件が淡々と進んでいく描き方がされているので、見る側が頭で考え補う必要がある。
ラストシーンで、父親が携行した猟銃が空砲だったのは、単に少年法強化を良しとするわけではないという意図の表れかな?
ただ、極刑はともかく、死ぬほどの恐怖を味わないと本当の意味で更生も難しいのはそうかもしれない。
休日出勤の振休だったけれど、休みの最終日に見るには少し重いテーマだった。
- 作者: 東野圭吾
- 出版社/メーカー: 角川グループパブリッシング
- 発売日: 2008/05/24
- メディア: 文庫
- 購入: 13人 クリック: 101回
- この商品を含むブログ (268件) を見る