- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好,我想问一下Element
接口(interface)中的getEnendingElement()
方法的注释是什么意思,不太明白。 javadoc如下:
Returns the innermost element within which this element is, loosely speaking, enclosed.
If this element is one whose declaration is lexically enclosed immediately within the declaration of another element, that other element is returned.
If this is a top-level type, its package is returned.
If this is a package, null is returned.
If this is a type parameter, the generic element of the type parameter is returned.
If this is a method or constructor parameter, the executable element which declares the parameter is returned.
注解可以用在类、变量(全局或局部)、方法等上,但是不知道注解和Element子类之间的对应关系。谢谢!!!
最佳答案
从 Java 13 开始,Element
可以表示:
ModuleElement
PackageElement
TypeElement
ExecutableElement
VariableElement
TypeParameterElement
每个元素都可以有注释。例如:
module-info.java:
@Foobar
module example {
exports com.example;
}
package-info.java:
@Foobaz
package com.example;
Foo.java:
package com.example;
@Baz
public class Foo<@Qux T> {
private final T bar;
public Foo(T bar) {
this.bar = bar;
}
@Override
public String toString() {
return "Foo{bar= " + bar + "}";
}
}
example
,即 ModuleElement
,存在 @Foobar
注释。com.example
,即 PackageElement
,存在一个 @Foobaz
注释。Foo
,即 TypeElement
,存在一个 @Baz
注释。T
,即 TypeParameterElement
,存在 @Qux
注释。bar
为 VariableElement
,没有任何注释。#Foo(T)
(将是 ExecutableElement
)没有注释。bar
为 VariableElement
,没有任何注释。#toString()
是一个 ExectuableElement
,存在一个 @Override
注释。您可以通过 AnnotatedConstruct
接口(interface)(Element
扩展)的方法获取这些元素上存在的注释。
不出所料,方法 Element#getEnclosingElement()
返回包含当前 Element
(如果有)的 Element
。因此,如果您要在代表方法 ExecutableElement
的 #toString()
上调用该方法,那么您将得到代表类 TypeElement
的 Foo
。
关于Java 注解处理器 getEnshingElement() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60575485/
您好,我想问一下Element接口(interface)中的getEnendingElement()方法的注释是什么意思,不太明白。 javadoc如下: Returns the innermost
我是一名优秀的程序员,十分优秀!