gpt4 book ai didi

java - 在注释处理环境中获取静态初始值设定项

转载 作者:行者123 更新时间:2023-11-30 10:12:55 25 4
gpt4 key购买 nike

这是来自 javax.lang.model.element.ExecutableElement.getSimpleName()

的 javadoc

Returns the simple name of a constructor, method, or initializer. For a constructor, the name "init" is returned, for a static initializer, the name "clinit" is returned, and for an anonymous class or instance initializer, an empty name is returned.

注意粗体部分说for a static initalizer,这意味着ExecutableElement 可以代表一个static initalizer

那么如何在注解处理环境中获取静态初始化器呢?此外,这是否意味着我们可以在静态 block 上添加注释(尽管我们直到 java8 才可以)?

最佳答案

您不能注释静态初始值设定项。但您仍然可以访问它。

无论您如何访问它,所有元素都可以在表示中使用。

例如如果您注释一个包含静态初始化程序的类,您将获得它的 TypeElement 表示,并且您可以使用 getEnclosedElements() 获取所有字段、方法、构造函数和初始化程序。

在循环中你可以测试元素的种类。对于静态初始化程序使用:

element.getKind() == ElementKind.STATIC_INIT

例如初始化使用

element.getKind() == ElementKind.INSTANCE_INIT

现在一个重要的问题是,您究竟需要实现什么。如何使用初始化程序。

如果您在注释处理期间访问它,您可能会发现有一个初始化程序,但仅此而已。例如。 body 表示不可用。

如果你想检查初始化器的主体,你必须使用 Java 8 中引入的编译器插件 API,使用 TaskListener

关于java - 在注释处理环境中获取静态初始值设定项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51628783/

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