Java
余計な一時変数というのはなるたけ作りたくないものですが、例えばJavaでこんなコード書いちゃうことあるじゃないですか。 static T poll() { Integer result = array[top]; // (1) if (++top >= array.length) top -= array.length;// (2) return result; }…
Play!(2.2以前)も採用している軽量O/RマッピングライブラリEBeanに出していたプルリクエスト*1が通ったので手前味噌。これまでEBeanでは、トランザクションはtry-finallyで書くのが基本でした。 Ebean.beginTransaction(); try { Order order = Ebean.find…
C#はラムダ記法で無名関数が書けますし、Javaも8からラムダ記法が可能になりました。しかし無名関数では再帰関数が書けません。 さてどういうことか。再帰関数の代表選手として階乗計算を例にとってみましょう。 まず、メソッドとして再帰的に書いてみます。…
もしくは、「Iterable<Number>にIterable<Double>を代入したいっ!」。もしくは「ガチで5分で理解できる共変・反変」、どれでもいいです。同じことです。 どういうことかというと NumberとDoubleに親子関係があったときにIterable<Number>とIterable<Double>にも親子関係が発生することを共変</double></number></double></number>…
注意 追記 2014/03/17この記事で紹介した問題回避方法は処理系依存かもしれません。Windows版JDK7(Oracle)のクライアントモードJVMでは意図通りに動作したもののLinux版JDK7(Oracle)のサーバモードJVMで依然として問題動作(WSDLを実行時に参照してしまう)…
コンストラクタが特に何もしてくれず、インスタンス作ってから初期化しないといけないタイプのクラスってありますよね。シリアライズのためだったりJavaBeansだったり、あとはふつーのArrayListだから作ってから内容詰め込みます、みたいに。オブジェクト作…