もうJava11が出てるじゃぁないか。
言語面では大きな機能追加は無いようだね。
削除される標準ランタイムが結構あるようだけど・・・
もうJava11が出てるじゃぁないか。
言語面では大きな機能追加は無いようだね。
削除される標準ランタイムが結構あるようだけど・・・
知らないうちに、Java10がリリースされていた。
新機能はまだ詳しくは調べていないのだが、C#とかと同じく、変数宣言にvarが使用できるようになったようだ。
var p = new Person();
のような感じで、右辺の型が推測可能なものに使用できる。上記の場合は、変数pはPerson型となる。C#ではおなじみの文法だ。
C#ではLINQ等を使用するときによく使うので、Javaで同じような機能を持つ、Streamで使用できるかどうか試してみた。
var q = personel.filter(p->p.getAge() > 20);
C#ならば、この後で、変数qに対してforeach文を使用することができるのだが、javaの場合は上記のqに対してforEachメソッドを使用することになる。
q.forEach(・・・);
個人的には、foreach(拡張for)も使用できるといいような気がするんだけどね。
このように、Streamを途中の状態で変数に格納することによって何ができるかと考えたんだけど、条件によって、複数の抽出条件を付加するとかはできそうだね。
var q = personel.filter(・・・); // 抽出条件1
if (・・・) { // ある条件ではさらに絞込
q = q.filter(・・・); // 抽出条件2
}
C#だと、上みたいな形も取れるし、Expressionを使用して式を動的に作ってもいいんだけど。
Windows10 Fall Creators Updateで、Windows Subsystem for Linuxが正式にサポートされて、Microsoft StoreからUbuntuやopenSUSEがインストールできるようになったので、ちょっとお試し。
UbuntuとopenSUSEにmonoをインストールして、WindowsにはフリーのX Server “Xming”をインストールの後、同じソースをWindows,Ubuntu,openSUSEで動作させてみた。
↓同じソースをWindows,Ubutu,openSUSEでコンパイルして、実行してみた結果。
ちなみに、Ubuntuでは、デフォルト状態で動作したが、openSUSEでは、x-windowの日本語フォントをインストールしないと、実行時にFontFamily Not Found Exceptionが発生する。
これ、さくらのVPSで動いてるんだけど、以前の環境がCentOS5だったのでサポート期限切れのためプロダクトのアップデートとかが面倒になったので、CentOS6に変更。
しかし、アップグレードパスが無いため、入れ直しとなり、まっさらな状態から設定を行ったんだよね。
前に、設定したのがかなり昔のことなので、ある程度の環境が整うまでに結構時間がかかってしまった。
特にこのサーバでやりたいことがあるわけでもないので、最低限ということで、以下の環境をセットアップ。
このうち、monoの設定に時間がかかってしまった。mono自体のインストールは特に問題ないのだけど、xspとmod_monoに時間を費やした。
xspは単なる、Pageディレクティブの記述ミスで訳の分からないエラーが出ていて、それに気づくまでに時間がかかってしまった(^^;
mod_monoはyumのパッケージを見つけられなくて、結局ソースからmakeかけたんだけど、よく見たら、apache2-mod_monoたら言うパッケージがあるではないか・・・monoだから、頭がmono*だろうと思って探していたから・・・
とりあえず、次はつまらないwebコンテンツでも作るかな・・・