
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> groupByFirstLetter(String...values) { return Stream.of(values).collect( Collectors.groupingBy(s -> Character.toUpperCase(s.charAt(0)))); }}
请注意,导入类不需要位于模块中即可使用此语法。
如果有两个同名的导入类,可能会出现歧义的类名。为了解决这个问题,我们需要直接在 import 语句中指定所需的类。
盘古大模型
华为云推出的一系列高性能人工智能大模型
35 查看详情
立即学习“Java免费学习笔记(深入)”;
此外,当一个模块传递导入另一个模块时,我们可以使用传递导入模块的导出包中的所有类,而无需任何显式导入。例如,java.sql 模块传递性地导入 java.xml 模块,因此我们可以使用 java.xml 中的类,而无需显式导入它们。
2。隐式声明的类中自动导入模块
在 java 23 中,隐式声明的类将自动导入完整的 java.base 模块。
以上就是Java 模块导入功能的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/458264.html
微信扫一扫
支付宝扫一扫