为了减少 import 的“样板代码”,
JDK 25 在 JEP 511 中提出了一个新能力:
模块级导入(Module Import)。
语法非常简单:
例如:
这一行代码,相当于导入了:
java.langjava.utiljava.iojava.mathjava.timejava.netjava.nio...
共 54 个核心包。
也就是说:
String
List
Map
Stream
File
Optional
全部可以直接使用。
我们看一个真实对比。
传统写法
import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;import java.util.ArrayList;import java.util.List;import java.util.stream.Collectors;
JDK 25 写法
对比结果:
对于:
体验提升非常明显。
如果你需要数据库 API。
只需要再加一行:
示例:
import module java.base;import module java.sql;
这样就能直接使用:
ConnectionStatementResultSetDriverManager
代码会变得非常干净。
如果两个模块里有同名类,比如:
java.util.Datejava.sql.Date
解决方法其实和以前一样:
精确导入优先。
例如:
import module java.base;import module java.sql;import java.util.Date;
Date utilDate = new Date();java.sql.Date sqlDate = new java.sql.Date(System.currentTimeMillis());