java - 创建声明并启动对象的自定义注释

标签 java annotations

我想创建一个注释,该注释将为 Target TYPE 并声明自定义类的对象。

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface Test {
}

class Student{

}

执行

@Test
class example{
    //Want this annotation to declare something like this
    Student s = new Student();
}

最佳答案

据我所知,注释处理器规范通常不支持这一点。带注释的类不得操纵其自身的 AST

Lombok (提供了提到的@Slf4j注释)似乎发现了一些不受支持的钩子(Hook),这实际上使它成为一个黑客。

如果您仍然想做类似的事情,我建议您查看 Lombok source code .

更新:

我刚刚找到了一个Baeldung tutorial它解释了如何实现自定义 Lombok 注释(不过我还没有读过)。因此,如果您愿意,也许您可​​以在 Lombok 之上构建一些东西。

关于java - 创建声明并启动对象的自定义注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58282534/

相关文章:

spring - Spring中@Order注解有什么用?

java - 实现可垂直和水平滚动的列表

java - 是否有用于解析 gettext PO 文件的 Java 库?

java - 如何通过 Runtime.getRuntime().exec() 在命令行应用程序中执行命令

kotlin - 在 Kotlin 中从 Lombok 实现 @slf4j 注释

java - Hibernate:未知的mappedBy in:,引用的属性未知:

java - fragment 上的自定义 ListView - 无法使用 getActivity()

java - JSqlParser 如何拆分一个表达式

java - Eclipse Luna 不保留注释处理生成的代码

javascript - 我可以为此函数编写 Flow 类型注释,将对象数组减少为一个对象吗?