Java 新言語機能のまとめ

ここ数年 Java はあまり使っていなくて最新の言語仕様をきちんと追いかけられていない人用に、最近追加された Java の言語仕様についてバージョン毎にまとめます。

Java 10

var: ローカル変数の型推論

var によるローカル変数の型推論が追加されたました。下の例のように右辺の式から変数の型が自明である場合にはデメリットはないので積極的に使っていくとよいと思います。

var list = new ArrayList<String>();  // infers ArrayList<String>
var stream = list.stream();          // infers Stream<String>

Java 8

Java 8 は2014年3月18日にリリースされたました。

ラムダ式

Java 8でついにラムダ式が追加されました

roster
    .stream()
    .filter(
        p -> p.getGender() == Person.Sex.MALE
            && p.getAge() >= 18
            && p.getAge() <= 25)
    .map(p -> p.getEmailAddress())
    .forEach(email -> System.out.println(email));

インターフェイスのデフォルトメソッド

Java 8からインターフェイスの関数にもデフォルトの実装を与えることが可能になりました。 IterableのforEachなどで利用されています。

Java 7

Java 7は2011年7月28日にリリースされました。

try-with-resources 文

Java 7 でtry-with-resources statementが足され、C#のusing, Pythonのwith文に相当することがJavaでも行えるようになりました。

try (BufferedReader br = new BufferedReader(new FileReader(path))) {
    return br.readLine();
}
最終更新: 6/16/2019