JEP 323,其中在java-11中为@Notnull

JEP 323,其中在java-11中为@Notnull,java,intellij-idea,java-11,Java,Intellij Idea,Java 11,昨天我启动了Java 11,我下载了JDK,用于PC(windows)的环境变量, 创建了一个新项目,并将JDK和JRE设置为指向Java11 我甚至通过cmd中的echo%JAVA\u HOME%再次检查了我的Env变量,这很好 一切似乎都正常,但我的编译器无法识别@Notnull var,有人能帮忙吗 我正在尝试执行的基本程序: list.stream() .map((@Notnull var s) -> s.toLow

昨天我启动了Java 11,我下载了JDK,用于PC(windows)的环境变量, 创建了一个新项目,并将JDK和JRE设置为指向Java11

我甚至通过cmd中的
echo%JAVA\u HOME%
再次检查了我的Env变量,这很好

一切似乎都正常,但我的编译器无法识别
@Notnull var
,有人能帮忙吗

我正在尝试执行的基本程序:

                 list.stream()
                .map((@Notnull var s) -> s.toLowerCase())
                .collect(Collectors.toList());
错误为:

Error:(13, 24) java: cannot find symbol
symbol:   class Notnull
location: class Main
甚至改变了项目结构中的语言水平
Ctrl+Shift+Alt+S
X-实验功能
,但没有任何帮助

尝试检查
import java.lang.*
并发现
@Notnull
不是 那里也有


JEP 323提供了在lambda参数上使用注释的语法


没有名为
Notnull
、或
Notnull
NonNull
的类。在JEP 323的文本中使用“
@Nonnull
”只是如何使用理论注释的一个例子

您是指
@NotNull
(camecased?)您得到了什么错误消息?此注释定义在哪里?您需要为它添加一个JAR文件吗?你有它的
import
语句吗?它必须从某处导入,在
java.lang
包中没有
Notnull
。如您所见,没有名为
Notnull
、或
Notnull
NonNull
的类。在JEP323的文本中使用“@Nonnull”只是如何使用理论注释的一个例子。那篇文章只是展示了在lamdba参数上使用注释的新语法示例。这与实际的注释无关(尽管在现有/可用的注释上使用它们会很好)。