工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Java

Java 10の新API 70以上を解説:不変コレクション、Optional改善など

JDK 10リリースではJavaライブラリに70以上の新しいAPIとオプションが追加されました。主な拡張機能は以下の通りです。

Optional.orElseThrow()メソッド

java.util.Optionalクラスに新しいメソッドorElseThrow()が追加され、get()メソッドの推奨代替となりました。

不変コレクション作成API

List、Set、Mapインターフェースに新しいcopyOf()メソッドが追加され、既存のコレクションから新しいインスタンスを作成できます。また、CollectorクラスにtoUnmodifiableList()、toUnmodifiableSet()、toUnmodifiableMap()メソッドが追加され、ストリームの要素を不変コレクションに収集できます。

JRE最終使用状況追跡の無効化

実行中のVMでJREの最終使用状況追跡を無効化するフラグjdk.disableLastUsageTrackingが導入されました。

パスワードのハッシュ化

jmxremote.passwordファイル内の平文パスワードが、JMXエージェントによってSHA3-512ハッシュで上書きされるようになりました。

Javadocの複数スタイルシート対応

javadocコマンドに--add-stylesheetオプションが追加され、生成ドキュメントで複数のスタイルシートを使用可能になりました。

Javadocのオーバーライドメソッド対応

javadocコマンドに--overridden-methods=valueオプションが追加。多くのクラスが継承メソッドをオーバーライドしても仕様を変更しない場合、これらのメソッドを他の継承メソッドとグループ化して、再度別個にドキュメント化する代わりにできます。

Javadocのサマリー対応

API説明のサマリーとして使用するテキストを指定するインラインタグ{@summary ...}が利用可能になりました。デフォルトでは最初の文からサマリーが推論されます。

使用例

import java.util.List;
import java.util.stream.Collectors;

public class Tester {
    public static void main(String[] args) {
        var ids = List.of(1, 2, 3, 4, 5);
        try {
            // 不変リストを取得
            List<Integer> copyOfIds = List.copyOf(ids);
            copyOfIds.add(6);
        } catch(UnsupportedOperationException e) {
            System.out.println("Collection is not modifiable.");
        }
        try {
            // ストリームから不変リストを取得
            List<Integer> evenNumbers = ids.stream()
                .filter(i -> i % 2 == 0)
                .collect(Collectors.toUnmodifiableList());
            evenNumbers.add(6);
        } catch(UnsupportedOperationException e) {
            System.out.println("Collection is not modifiable.");
        }
    }
}

出力

Collection is not modifiable.
Collection is not modifiable.

Java

  1. Java演算子をマスター:種類、構文、実践例
  2. Javaコメント:種類、使い方、ベストプラクティス
  3. Java拡張forループをマスター:構文、例、ベストプラクティス
  4. Java文字列をマスター:生成、メソッド、ベストプラクティス
  5. Javaインターフェース完全ガイド:概念、実装、ベストプラクティス
  6. Java無名インナークラス完全ガイド:定義、構文、実践例
  7. Javaのtry-with-resourcesをマスターする:自動リソース管理の仕組みと活用法
  8. Javaアノテーション完全ガイド:種類、配置場所、実践例
  9. Javaアサーション完全ガイド:バグ早期発見とコード信頼性の向上
  10. Javaオートボクシングとアンボクシング完全ガイド:実例とベストプラクティス
  11. Java 10の新API 70以上を解説:不変コレクション、Optional改善など