java: -source 1.5 中不支持 diamond 运算符 (请使用 -source 7 或更高版本以启用 diamond 运算符) SwaggerConfig.java 报错了,是什么原
·
这个报错信息说明很明确 👇
java: -source 1.5 中不支持 diamond 运算符
(请使用 -source 7 或更高版本以启用 diamond 运算符)
原因
-
diamond 运算符
<>是 Java 7 才引入的语法糖。
比如:List<String> list = new ArrayList<>();这里的
<>就是 diamond 运算符,JDK 1.5 是不支持的。 -
你的
SwaggerConfig.java里面可能有类似:new HashMap<>(); new ArrayList<>();如果编译环境是 Java 5 (1.5),就会报这个错。
-
编译配置问题:
你的项目实际上可能用的 JDK 8 或 11,但 IDEA 或 Maven/Gradle 的编译参数设置了-source 1.5,所以编译时降级成了 Java 5。
解决方法
-
检查 IDEA 项目设置
-
File -> Project Structure -> Project- Project SDK:设置为
1.8或以上 - Project language level:设置为
8 - Lambdas, type annotations, etc.
- Project SDK:设置为
-
-
检查 Maven/Gradle 配置
-
如果是 Maven 项目,确认
pom.xml:<properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> -
如果是 Gradle 项目,确认
build.gradle:java { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 }
-
-
重新编译
改完后mvn clean install或gradle clean build。
✅ 总结:
- 报错不是
SwaggerConfig.java写错了,而是 项目的编译配置过低 (Java 5)。 - 把编译版本改到 1.8 或更高 就能解决。
要不要我帮你写一个 标准的 SwaggerConfig.java(SpringBoot + Swagger3)示例,保证和 Java8+ 兼容?
更多推荐


所有评论(0)