gpt4 book ai didi

java - @NonNull 注释最终可以在运行时的 Java 8 中使用吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:25:19 26 4
gpt4 key购买 nike

我知道已经有很多关于 @NonNull 注释的主题,但是其中大部分已经过时了,现在 Java 8 已经存在,这意味着 API 不再更改。

Annotations on Types 进一步证明了这个问题的合理性现在是 Java 8 的一部分。

所以我想要下面的代码:

public BaseChecker(final @NonNull File directory, final @NonNull Consumer<File> fileConsumer) {
this.directory = directory;
this.fileConsumer = fileConsumer;
}

我有两个问题:

  1. 这种语法是否可能?
  2. @NonNull 最终可以在运行时运行吗?

在运行时工作,我的意思是:

  • 如果在 Object value 上注释,当且仅当 value == null 时,它应该抛出 NullPointerException
  • 此行为类似于 Objects.requireNonNull(value)

最佳答案

是的,这种语法是可能的。但不,它不会按照您建议的方式“工作”。注释根本不应该“起作用”,它们是可以检查的装饰。

然而,用 AOP 实现这种类型的行为是微不足道的。查看 AspectJ。

关于java - @NonNull 注释最终可以在运行时的 Java 8 中使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22379113/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com