我正在尝试java.lang.function.Function在我的 java 8 代码库中使用 a ,但我在 Intellij 中不断收到以下错误。
java.lang.function.Function
记录为 @since 1.6+ 的 API 的使用情况 此检查发现在其文档中具有 @since 标记的方法的所有使用情况。当在较新的 SDK 版本下作为生产的目标平台执行开发时,这可能很有用
我似乎有正确的项目和编译器设置
项目设置:(文件 - > 项目结构)
Project Settings -> Project -> Project SDK = Java 1.8 Project Settings -> Project -> Project Language Level = 8 - Lambdas, Type Annotations etc
编译器设置:(文件 - > 设置)
Build, Execution, Deployment -> Compiler -> Java Compiler -> Project Bytecode Version : 1.8 Build, Execution, Deployment -> Compiler -> Java Compiler -> Per module Bytecode Version -> Target Bytecode Version : 1.8
问题是什么?
根据 Bastien Jansen 的评论编辑了答案。
似乎还有另一个项目设置会影响编译器级别。这个问题的一个微妙迹象是当你的编译器开始抱怨源和目标 java 版本与你在编译代码时指定的不同时
Warning:java: source value 1.5 is obsolete and will be removed in a future release Warning:java: target value 1.5 is obsolete and will be removed in a future release Warning:java: To suppress warnings about obsolete options, use -Xlint:-options.
要摆脱这个,你需要打开
File -> Project Structure -> Project Settings -> Modules -> "Your Module Name" -> Sources -> Language Level
并将其更改为所需的级别,即 1.8 或项目默认语言级别