Java 在具有运行时保留的对象上找不到批注
好吧,我有点困惑。我试图通过在模型上使用注释来选择一个“DAO”类:Java 在具有运行时保留的对象上找不到批注,java,reflection,annotations,Java,Reflection,Annotations,好吧,我有点困惑。我试图通过在模型上使用注释来选择一个“DAO”类: @Entity @Table(name="dispatcher") // use the Kamailio Base DAO for code that supports this annotation @DAOSelector(dao = DAOBaseKamailio.class) public class DispatcherSet extends Model { [...] } 以下是注释说明: @Targ
@Entity
@Table(name="dispatcher")
// use the Kamailio Base DAO for code that supports this annotation
@DAOSelector(dao = DAOBaseKamailio.class)
public class DispatcherSet extends Model {
[...]
}
以下是注释说明:
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface DAOSelector {
Class<?> dao();
}
但是,当我馈送DispatcherSet
对象注释时,该注释始终为空:
10:33:38498[INFO][STDOUT]注释对于类model.DispatcherSet不存在
我是不是遗漏了什么
编辑:
好的,发现了一些有趣的东西,我正在JBoss容器中运行这段代码,当我打印出所有注释时:
{{{
$Proxy76
$Proxy708
$Proxy77
}}}
其中一个应该是DAOSelector
注释的代理实例,我猜这可能就是getAnnotation(DAOSelector.class)
不起作用的原因,请检查它
编辑2:
不,它们不是DAOSelector的实例,我已经解决了这个问题。这是一个类路径问题。我的耳朵里有一个罐子和一场战争。模型在jar中,注释在两者中都存在
{{{
$Proxy76
$Proxy708
$Proxy77
}}}