You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Gradle的IntelliJ项目Java21+配置及switch表达式报错求助

Java 21 Switch表达式编译错误解决:illegal start of expression

问题现象

在基于Gradle的IntelliJ项目中使用Java 21的箭头式switch表达式时,触发编译错误,报错信息:

error: illegal start of expression return switch (setType) {

对应的代码示例:

private static SimpleAbstractSet<String> makeSet(String setType){
    return switch (setType) {
        case "HashSet" -> new SimpleHashSet<>();
        case "TreeSet" -> new SimpleTreeSet<>();
        ...
        default -> throw new IllegalArgumentException();
    };
}

环境说明

  • 操作系统:Linux CentOS
  • 已配置:Java 21.0.4、Gradle 8.4
  • IntelliJ设置:项目结构与全局设置均指定Java 21 SDK及对应语言级别
  • 代码来源:范德堡大学《Java与线程函数式编程》MOOC,原环境可正常运行

解决方法

排查后发现,部分MOOC子项目的Gradle JVM被默认设置为Java 11,与项目指定的Java 21版本不匹配。将该子项目的Gradle JVM修改为JAVA_HOME指向的Oracle OpenJDK 21.0.4后,编译错误消失。

内容的提问来源于stack exchange,提问作者Edwin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 19:12:05