Java8へのポテンシャルをアップ
細かい改善は細かいのですが、
今回はポテンシャルがアップしています。
DBFlute-1.1 からは、
Java8コンパイルのDBFluteになる予定ですが、
Java8じゃなくても前もってできることをやっています。
特に、以下の三つは、Java8対応への序章です。
A. SubQueryの中で外側のConditionBeanへの間違い操作を防ぐオプション
B. Java8先取り、selectEntity()の戻り値をOptionalEntityに
C. ネストしたLoadReferrerをドット続けてwithNestedReferrer()で
※AとBはオプションです、Cは互換性が保たれるので入れています
Java8のラムダのちょっと心配なところ...
Java8 のラムダになると、
「外側で宣言されている変数と同じ名前の変数をラムダで宣言できない」
という挙動になるようです。
詳しくはこちら:
// Java8のラムダのちょっと心配なところ...
http://d.hatena.ne.jp/jflute/20140515/lambda
万が一 SubQuery の中で外側の cb を呼んじゃったら
例外になるようなチェックオプションを付けられるようにしました。
Java8互換モード
そして、これらの機能を今のうちからフルで使って、
DBFlute-1.1でのJava8対応の備えるオプションを用意しました。
isCompatibleBeforeJava8 = false
とすれば、もろもろが 1.1 仕様に近づきます。
ただ、まだパイロット実装ではありますので、
今後また変更が入る可能性はあるのでご了承ください。
Java8関係ないって人でも使える機能
まあ、全然 Java8 なんてまだ使わないよって人には、
関係ないかもしれませんが、
LoadReferrer の withNestedReferrer() に関しては、
すぐに利用できますし、Java8 にしなくても、
もろもろの機能は便利なので、開発始まったばかりであれば、
isCompatibleBeforeJava8 を false にしてもいいかも!?