java10

知らないうちに、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を使用して式を動的に作ってもいいんだけど。

takezou について

ソフトウェア開発会社(ITと言う言葉は大嫌い)で働く、元技術者。 未だに、社内システム位は作ってますが・・・ プログラミング言語はC#が好き。 好きなことだけ拾って投稿しているので、内容にはあまり期待しないでねw
カテゴリー: java, 技術系 パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください