可以在任何地方使用无@target的注释类型吗?
Java教程说了以下内容:
如果注释类型t上不存在@target元通道,则可以将类型T的注释写为任何声明的修饰符,除非类型参数声明。
其他手册说,如果@target不存在@target,则不存在注释可以在任何位置使用type_use或type_parameter方案。
在这种情况下,我不确定“参数声明”的含义。该类编译,注释“ @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";
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这取决于Java版本。 Java SE 18说
不幸的是 https://javaalmanac.io 不需要在哪个版本上找到它更改的版本所必需的详细级别。
It depends on Java version. Java SE 18 says
Unfortunately https://javaalmanac.io does not do diffs at the level of detail necessary to find out in which version it changed.