这个报错信息说明很明确 👇

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。


解决方法

  1. 检查 IDEA 项目设置

    • File -> Project Structure -> Project

      • Project SDK:设置为 1.8 或以上
      • Project language level:设置为 8 - Lambdas, type annotations, etc.
  2. 检查 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
      }
      
  3. 重新编译
    改完后 mvn clean installgradle clean build


✅ 总结:

  • 报错不是 SwaggerConfig.java 写错了,而是 项目的编译配置过低 (Java 5)
  • 把编译版本改到 1.8 或更高 就能解决。

要不要我帮你写一个 标准的 SwaggerConfig.java(SpringBoot + Swagger3)示例,保证和 Java8+ 兼容?

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐