Java教程介绍了以下内容:

如果@Target元注释不存在于注释类型T上,那么类型T的注释可以作为除类型参数声明之外的任何声明的修饰符写入.

https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/annotation/Target.html

其他手册说,如果@Target不存在,则注释可以在除TYPE_使用或TYPE_参数场景之外的任何地方使用.

我不太确定在这种情况下"参数声明"是什么意思.这个类进行编译,注释"@EveryWhere"实际上无处不在,没有任何@Target注释.包括强制转换操作、lambda参数和泛型声明.

import java.util.ArrayList;
import java.util.function.Predicate;
@interface EveryWhere{}
public @EveryWhere class  AnnotedEveryWhere<@EveryWhere T> extends @EveryWhere Object{
    @EveryWhere int i = 0;
    @EveryWhere <@EveryWhere T> String method(@EveryWhere ArrayList<@EveryWhere String> array) {
        @EveryWhere Predicate<@EveryWhere ArrayList<@EveryWhere String>> pred = 
                (@EveryWhere ArrayList<@EveryWhere String> lambdaParameter)->{
                    @EveryWhere ArrayList<@EveryWhere String> insideLambda = new @EveryWhere ArrayList<@EveryWhere String>(); 
                    return (@EveryWhere boolean) true;};
        return (@EveryWhere String) "String";
    }

}

推荐答案

这取决于Java版本.Java SE 18说

如果注释上不存在@Target元注释

不幸的是,https://javaalmanac.io没有在必要的细节层次上进行差异,以找出它在哪个版本中发生了更改.

Java相关问答推荐

无法在Java中将hhmmss格式的时间解析为LocalTime

使用Apache Poi MQLSlideShow,在XSLFTable表中,我们可以在文本段落后面的每个单元格中包含圆角矩形吗?

如何调用Firebase Realtime Database中的子图像列表到android studio中的回收器视图?

为什么我的ArrayList索引的索引总是返回-1?

如何判断一个矩阵是否为有框矩阵?

在AVL树的Remove方法中使用NoSuchElementException时遇到问题

如何在Java中从XML中获取特定的 node ,然后将其删除?

如何让JavaFx应用程序识别依赖项?

GetChildren().emoveAll()不会删除 node

如何在太阳系模拟器中添加月球?

try 在两个不同数组的数字之间求平均值

在JDK Flight Recorder中只记录单个线程

在Java Spring JPA中插入包含对其他实体的引用的列

我们可以在方法中声明接口吗?

保持标题窗格的箭头可见,即使设置为不可折叠

using case default on switch语句返回;预览特征切换中的模式匹配仅在源级别20及以上的情况下可用;

Vaadin Flow:设置密码显示按钮属性

如何在Java中调用对象上预定义的接口方法列表?

如何在 Visual Studio 代码中快速生成构造函数和 getter、setter?

JavaFX 不嵌入谷歌 map html