Java 23 では、モジュール インポート宣言 (プレビュー) と暗黙的に宣言されたクラスでの自動モジュール インポートという 2 つの新しいプレビュー機能が導入されています。これらはまだ変更される可能性があるため、運用コードでは使用しないでください。
1.モジュールのインポート宣言 (プレビュー) - JEP 476
Java 23 のリリースにより、コード内に完全なモジュールをインポートできるようになりました。これは、そのモジュールによってエクスポートされたパッケージ内のすべてのクラスをインポートできることを意味します。
たとえば、クラスごとに個別の import ステートメントを作成することなく、完全な java.base モジュールをインポートし、List、Set、Map、Collector などのクラスを使用できます。これは、「インポート モジュール」構文を使用して実行できます。
//Old style: import java.util.Map; // or import java.util.*; import java.util.function.Function; // or import java.util.function.*; import java.util.stream.Collectors; // or import java.util.stream.*; import java.util.stream.Stream; // (can be removed)
//New Style: import module java.base; public class MyExamCloud { public static Map<Character, List<String>> groupByFirstLetter(String...values) { return Stream.of(values).collect( Collectors.groupingBy(s -> Character.toUpperCase(s.charAt(0)))); } }
この構文を使用するために、インポートするクラスがモジュール内にある必要はないことに注意してください。
同じ名前を持つ 2 つのインポートされたクラスがある場合、あいまいなクラス名が発生する可能性があります。これを解決するには、インポート ステートメントで目的のクラスを直接指定する必要があります。
さらに、あるモジュールが別のモジュールを推移的にインポートする場合、明示的なインポートを行わずに、推移的にインポートされたモジュールのエクスポートされたパッケージ内のすべてのクラスを使用できます。たとえば、java.sql モジュールは java.xml モジュールを推移的にインポートするため、明示的にインポートしなくても java.xml のクラスを使用できます。
2.暗黙的に宣言されたクラスでのモジュールの自動インポート
Java 23 では、暗黙的に宣言されたクラスは完全な java.base モジュールを自動的にインポートします。
以上がJavaモジュールインポート機能の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。