Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 包含具有值的注释的注释_Java_Annotations - Fatal编程技术网

Java 包含具有值的注释的注释

Java 包含具有值的注释的注释,java,annotations,Java,Annotations,我的问题是关于,但不完全相同,所以我想我还是会问。尤其是因为这个问题几乎没有答案 假设我写了这样一个注释: @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE}) public @interface NestedAnnotation { public String value(); public Class<?> impl() default Void.class; } @Retention(R

我的问题是关于,但不完全相同,所以我想我还是会问。尤其是因为这个问题几乎没有答案

假设我写了这样一个注释:

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
public @interface NestedAnnotation {
    public String value();
    public Class<?> impl() default Void.class;
}
@Retention(RetentionPolicy.RUNTIME)
@目标({ElementType.TYPE})
public@interface嵌套注释{
公共字符串值();
public Class impl()默认为Void.Class;
}
因此,如果我想使用它,我必须做一些类似@NestedAnnotation(“somevalue”)的事情。现在,如果我想将该注释放入另一个注释中,该怎么办:

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@NestedAnnotation("need value here!")
public @interface OuterAnnotation {
    public String value();
    public Class<?> impl() default Void.class;
}
@Target({ElementType.TYPE})
@保留(RetentionPolicy.RUNTIME)
@NestedAnnotation(“此处需要值!”)
公共@接口外部表示法{
公共字符串值();
public Class impl()默认为Void.Class;
}

NestedAnnotation需要一个值,添加一个字符串(如上所述)也可以。但是如果我想传递一个由外层符号接收的值,该怎么办?这可能吗?

如果您的目标是注释继承,那么→ 您需要的是注释属性的动态值。然而,注释只能在编译时设置,这就是为什么它们的值只能是编译时常量的原因。你只能在运行时阅读它们。嗯,好吧,这是有道理的。幸好我找到了另一种解决问题的方法@Hieron你能告诉我这个问题的解决方案吗?我也经历了同样的情况。Rahul,我想我使用了一个不涉及注释的解决方案。所以恐怕没有真正的“解决方案”