日々常々

ふつうのプログラマがあたりまえにしたいこと。

Java8

Calendar.Builderとやらを触ってみた

知らなくても生きていけるけど、知ってるとちょっと便利っぽいもの。 みんな知ってるのかもしれないけど、私は今日まで知らなかったから書いておきます。 もともとは今日 @khasunuma さんがされていた一連のツイートからです。その中で紹介されたスライドに…

Optionalの取り扱いかた

JavaSE8で追加されたjava.util.Optionalにはnullとの戦いに終止符を打ってもらいたいと思っているんですが、思ってるだけだと何も起こらないので、使い方とか思ったこととかを一通り書いておきます。 Optionalのファクトリメソッド Optionalのインスタンスメ…

リストを項目ごとに集計する - Java8ばーじょん

4年前に書いたリストを項目ごとに集計するというエントリを見つけたので、なんとなく今風にStream使って書いてみた。 Collection<Output> summary(List<Input> data) { return data -> { Map<String, List<Input>> collected = data.stream() .collect(groupingBy(Input::getKey)); return colle</string,></output>…

JavaSE8でinterfaceにstaticメソッドを持てるようになったので

Javaの古きアレなプラクティスの1つに、ユーティリティクラス*1をabstractで作成すると言うのがある。 public abstract class SomeUtil { public static String appendA(String str) { return str + "a"; } } ユーティリティメソッドappendAは、特に役に立…

DiamondProblemの対応で気になったこと

去る2014/7/12は関西Javaエンジニアの会スペシャル! Java 8リリースでした。JavaSE8に関するアレコレでぎっしり、実に充実した一日でした。さて、その中でインタフェースにdefaultメソッドが定義できるようになった結果、起こるのじゃないかと危惧されたダ…

Java8で実行時にメソッドの引数の名前がとれるぽい

JEP 118: Access to Parameter Names at Runtime http://download.java.net/jdk8/docs/api/java/lang/reflect/Parameter.html#getName() Java8で実行時に Parameter#getName でメソッドの引数の名前がとれる感じです。 やってみる こんなクラスのー public c…

AutoCloseableでなくてもtry-with-resourcesがしたい

The Java Community Process(SM) Program - JSRs: Java Specification Requests - detail JSR# 335 2013年にリリースされる予定のJavaSE8に入る内容を書いてます。Early Draft Review 2です。まだ変わるかもしれません。「違ったじゃん」と言われても知りま…

ラムダさんのコレクション以外の使い道

Java8のラムダさん、コレクションの操作ばかりに目が行ってたけどリソースのオートクローズとかええんちゃうん。ええんちゃうん2013-01-02 18:08:15 via YoruFukurouなるほど、確かに AutoCloseable は Functional Interface だ。 public interface AutoClos…

Lambdaの書き方をさくっと

関西ジャバで「どうでもいい」と言われた Lambda の書き方をさくっと書いておきます。 JSR-000335 Lambda Expressions for the Java Programming Language - Early Draft Review 2 「来年の事を言えば鬼が笑う」とか言いますが、もう今年なんで大丈夫です*1…

Date and Time APIを触ってみた

Java Advent Calendar 2012 : ATND 前: Java - GuavaのSupplierで簡単キャッシュ - Qiita 次: mike、mikeなるままに…: 今更だけど、Javaの勉強方法まとめてみた #jjug JavaAdventCalendar2012の24日目。カレンダーなんで日付のです。24日とかただの日だし。1…

Java SE 8 で入る Lambda の構文は新しいメソッド用と言うわけでもなく

Java SE 8 でようやく Project Lambda が入ります。何が嬉しいかってーと内部イテレーターですね。内部イテレーターってそのオブジェクトの中でぐるんぐるんするんで、外からは「この処理をしてくださいな」と渡す必要があります。それを簡単に書けるように…