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> 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 モジュールを自動的にインポートします。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3