我想创建一个注释,该注释将为 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/