Java 23 引入了兩個新的預覽功能:模組導入宣告(預覽)和隱式宣告類別中的自動模組導入。這些不應該在生產代碼中使用,因為它們仍然可能發生變化。
1。模組導入聲明(預覽)- JEP 476
隨著 Java 23 的發布,我們現在可以在程式碼中匯入完整的模組。這意味著我們可以導入該模組導出的包中的所有類別。
例如,我們可以匯入完整的 java.base 模組並使用 List、Set、Map 和 Collectors 等類,而無需為每個類別建立單獨的導入語句。這可以透過使用「導入模組」語法來完成:
//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)))); } }
請注意,導入類別不需要位於模組中即可使用此語法。
如果有兩個同名的導入類,可能會出現類名不明確的情況。為了解決這個問題,我們需要直接在 import 語句中指定所需的類別。
此外,當一個模組傳遞導入另一個模組時,我們可以使用傳遞導入模組的導出包中的所有類,而無需任何明確導入。例如,java.sql 模組傳遞性地導入 java.xml 模組,因此我們可以使用 java.xml 中的類,而無需明確導入它們。
2。隱式宣告的類別中自動導入模組
在 Java 23 中,隱式宣告的類別將自動匯入完整的 java.base 模組。
以上是Java 模組導入功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!