SAStruts1.0.3-rc1 がリリースされました

今回はいくつかの重要な機能改善が施されています。
前バージョンとの変更点を効率的に把握するために、
1.0.2 から 1.0.3-rc1 までの差分ドキュメントをどうぞ。


リリースノート
http://sastruts.seasar.org/releaseNotes.html


ダウンロード
http://sastruts.seasar.org/download.html

Java SE 7のクロージャと関数型

Java SE 7で導入される予定のクロージャと関数型の動向は以前からとても気になっています。

クロージャと関数型の仕様策定については、紆余曲折があり、一時期は酷い構文が提案されていて失望していました。ですが、上記の記事で紹介されているような現行案の構文は、さすがに良く検討されており、ソースコードの可読性をあまり落とさずにプログラムを簡素化できそうです。実際に使ってみたくなりました。

Seasar関連の便利クラス

フレームワーク開発者ではなく、フレームワーク利用者の視点でSeasar関連のjarファイルに 内包されている便利クラスをピックアップしました。

便利クラスの存在を知って活用することは大切ですが、もっと大切なのは、便利クラスを自作する前に、フレームワークやプラットフォームで似たようなモジュールが存在していないかチェックする習慣だと思います。

他にも便利なクラスやメソッドがあれば、ぜひ、コメント等で教えて下さいませ m(_ _)m 。

ArrayUtil.isEmptyメソッド

  • 用途
    • 配列が空(null)かどうかをチェック
  • jar
    • s2-framework-2.4.xx.jar
  • パッケージ
  • メソッド
    • static boolean isEmpty(Object[] arrays)
    • ArrayUtil
  • サンプル
 if (arrays == null || arrays.length == 0) {

↓次のように書き換えるとコードがスッキリする

if (isEmpty(arrays)) { 

※ 上記のコードは static importを使ってクラス名(ArrayUtil)を省略している。

ArrayUtil.addメソッド

  • 用途
    • 配列同士の結合が簡単にできる
  • jar
    • s2-framework-2.4.xx.jar
  • パッケージ
  • メソッド
    • static Object add(Object array, Object obj)
  • javadoc
  • サンプル
String[] a = new String[] { "1", "2" };
String[] b = new String[] { "3" };
a = (String[]) ArrayUtil.add(a, b);

ClassUtilクラス

  • 用途
    • Javaクラスのリフレクション操作を簡単にできる
  • jar
    • s2-framework-2.4.xx.jar
  • パッケージ
  • メソッド
    • <<多数あるため省略>>
  • javadoc

ReflectionUtilクラス

TextUtil.readTextメソッド

  • 用途
    • ファイルの中身をString型で簡単に取得する
  • jar
    • s2-framework-2.4.xx.jar
  • パッケージ
  • メソッド
    • static String readText(String path)
  • javadoc
  • サンプル
String hoge = TextUtil.readText(“c:/tmp/hoge.txt”);

FileUtil.copyメソッド

  • 用途
    • ファイルをコピーする
  • jar
    • s2-framework-2.4.xx.jar
  • パッケージ
  • メソッド
    • static void copy(File src, File dest)
  • javadoc
  • サンプル
String srcTxt = “c:/tmp/src.txt";
File src = new File(srcTxt);
String destTxt = “c:/tmp/dest.txt";
File dest = new File(destTxt);
dest.createNewFile();
FileUtil.copy(src, dest);

SingletonS2Container .getComponentメソッド

JdbcManager jdbcManager =
    SingletonS2Container.getComponent(JdbcManager.class);

MessageResourceUtil .getMessageメソッド

  • 用途
    • application.resources のエントリを簡単に取得する
  • jar
  • パッケージ
  • メソッド
    • static String getMessage(String key)
  • サンプル
String message =   
    MessageResourcesUtil.getMessage("ESAS0001")

RequestUtil .getRequestメソッド

  • 用途
    • ServletHttpRequestを簡単に取得する
  • jar
  • パッケージ
  • メソッド
    • static HttpServletRequest getRequest()
  • サンプル
HttpServletRequest request = RequestUtil.getRequest();

通勤時間で検索

最近、不動産を探しています。
以前から欲しいと思っていた
勤め先の最寄駅からの所要時間で検索する機能を
見つけることができて、メッチャ嬉しいです!



【CENTURY21】通勤時間から検索
http://rent.century21.jp/index.php/R0040010/

自動生成されたソースコードを直ぐにEclipseへ認識させる

ResourceSynchronizerがEclipseに搭載されていれば、 GenerateもしくはSql2Entityをした後に該当プロジェクトを 自動更新することが可能です(F5を押さなくていい)。

通常は、自動生成されたソースコードEclipseは直ぐには認識しないので、ファイルシステムEclipseの同期をとるために更新操作(F5)をする必要があります。(自分もデモをやった時に押し忘れて、あせったことがあります。)自動生成系ツールに慣れていないと、「あれっ、なんで反映されていないんだろう?」なんて軽くハマってしまいます。

DBFluteに新しく搭載されたResourceSynchronizerのような機能は、自動生成したソースコードが自動的にEclipseに反映されます。地味だけど、当たり前のことを当たり前にできるという意味で非常に良い機能だと思います。

DBFlute はこのような地味だけどボディブローのようにじわじわと効いてくる機能が他にも沢山盛り込まれており、完成度は見た目以上に高いです。実際に触ったことがある人からの評価が高いのもうなづける。

iPhoneを買うために前日から並ぶ人

とりあえず、今晩から並び始めました。

昨日、帰り際に六本木のソフトバンクの携帯ショップに通りかかるとiPhoneを買うための列の先頭に、「ござ」の上に「発電機」と「Mac」を完備したツワモノが居るなぁ、と思っていたらなんと大学時代の後輩でした。

彼は在学中にGClue(http://www.gclue.jp/)という携帯アプリ開発の会社を立ち上げたスゴイ奴で、今も多方面で大活躍しています。

しばらく立ち話をしていると彼の周りにエンジニア系の人が集まってきて、私も終電を気にしながら、バタバタと数人の方と名刺交換をさせて頂きました。せっかくの機会だったので、もう少しお話をしたかったです。

ps. SNSで有名なGREEの方とも名刺交換させて頂いて初めて知ったのですが、GREEもうちの会社(ティーアンドエフカンパニー)も六本木4丁目なので、すごく近くだったんですね。


追記:
「発電機」は灯油ではなくて、ガソリンで動いており、ガソリンは専用の鉄の容器がないとガソリンスタンドで給油してもらえないみたいですね。初めて知りました。

追記:
ソフトバンク六本木店は初日は 150台 入荷されるらしい。