IntelliJ中已正确导入Java 11方法仍无法识别的问题求助
我之前也碰到过类似的IDE识别异常问题,给你几个排查和解决的方向试试:
检查项目SDK与语言级别配置
打开File → Project Structure,先确认Project Settings里的Project SDK是Java 11,同时Project language level也要设置为11(Optional.ofNullable是Java 8引入的,所以至少要选8以上,但你的项目是Java 11,最好保持一致)。另外别忘了检查Modules下每个模块的Sources标签里的Language level是否和项目全局配置一致,有时候模块单独设置了低版本会导致这类符号识别问题。明确Maven编译版本配置
在你的pom.xml里添加Java版本的明确配置,避免Maven和IDE的编译版本不一致:<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>11</source> <target>11</target> </configuration> </plugin> </plugins> </build>配置完成后,点击IDE右侧Maven面板的「Reload All Maven Projects」按钮,让IDE重新同步依赖和编译规则。
清理并重新构建项目
先在Maven面板里执行clean命令清理旧编译文件,再执行compile命令重新编译;之后再执行IDE顶部菜单的Build → Rebuild Project,强制重新构建整个项目,很多时候编译缓存的问题会导致IDE识别异常。确认IDE的Maven配置
打开File → Settings → Build, Execution, Deployment → Build Tools → Maven,确认Maven home path指向你手动安装的3.6.0版本,而不是IDE自带的Maven。同时检查User settings file和Local repository的路径是否正确,避免依赖缓存混乱。极端情况:重置IDE项目配置
如果上面的方法都没用,可以试试关闭IDE,删除项目根目录下的.idea文件夹以及所有模块的.iml文件,然后重新导入项目。注意提前备份你的Run/Debug配置,避免丢失。
内容的提问来源于stack exchange,提问作者Sebi

