Java类名称作为注释属性

时间:2013-08-19 11:13:41

标签: java annotations

是否可以在注释中使用类的简单名称?我的目标是使用包含类的JNDI名称来获得注入的编译时安全性。

示例(我想要做的,这在编译时失败):

@EJB(mappedName = "java:module/" + MyService.class.getSimpleName())
private MyService myService;

class.getSimpleName()似乎在运行时被解析,这不适用于注释。我能以某种方式将它作为一个常量吗?

1 个答案:

答案 0 :(得分:0)

你的方式不可能。它可以用AOP技术完成。但是,

@EJB(mappedName = "java:module/" + MyService.class.getSimpleName())
private MyService myService;

在这段代码中,您似乎只有一个可能的值,即“MyService”。它不会动态变化,那么为什么要动态评估它呢?