相关疑难解决方法(0)

将注释值设置为Class <?>时出错,为什么?

这是我的注释:

@Target( { ElementType.METHOD } )
@Retention(RetentionPolicy.RUNTIME)
public @interface AuditUpdate
{
    Class<?> value();
}
Run Code Online (Sandbox Code Playgroud)

通过这种方式它是好的:

@AuditUpdate(User.class)
void someMethod(){}
Run Code Online (Sandbox Code Playgroud)

但通过这种方式:

private static final Class<?> ENTITY_CLASS = User.class;
@AuditUpdate(ENTITY_CLASS)
void someMethod(){}
Run Code Online (Sandbox Code Playgroud)

我有这个编译错误:

The value for annotation attribute AuditUpdate.value must be a class literal
Run Code Online (Sandbox Code Playgroud)

为什么?那是什么意思?

谢谢.

java annotations

2
推荐指数
1
解决办法
2072
查看次数

标签 统计

annotations ×1

java ×1