Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.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_Nested - Fatal编程技术网

Java 如何在注释中使用注释?

Java 如何在注释中使用注释?,java,annotations,nested,Java,Annotations,Nested,鉴于: public @interface MyAnnotation(){ public SomeType[] value(); } 在Java 7中,是否可以执行以下操作: @MyAnnotation({ value1, @MyAnnotation({subValue1, subvalue2, ...}) value2, ... valueN }) public Object someProperty; 你可以。这是库中的一个示例(省略注释): 你可

鉴于:

public @interface MyAnnotation(){
    public SomeType[] value();
}
在Java 7中,是否可以执行以下操作:

@MyAnnotation({
    value1,
    @MyAnnotation({subValue1, subvalue2, ...}) value2,
    ...
    valueN
})
public Object someProperty;

你可以。这是库中的一个示例(省略注释):


你可以。这是库中的一个示例(省略注释):

如何在注释中使用注释

也许像这样

public @interface MyAnnotation(){
    public SomeType[] value();

    public MyAnnotation[] refine();
}

@MyAnnotation(
  {value1, value2},
  refine={ @MyAnnotation({valueX, valueY}), @MyAnnotation(valueM) }
)
public Object someProperty;
另外,在Java8中,您可以使用注释——因此您可以对“主要”(例如第一个)进行细化或添加后续重复相同注释带来的其他细化

如何在注释中使用注释

也许像这样

public @interface MyAnnotation(){
    public SomeType[] value();

    public MyAnnotation[] refine();
}

@MyAnnotation(
  {value1, value2},
  refine={ @MyAnnotation({valueX, valueY}), @MyAnnotation(valueM) }
)
public Object someProperty;

此外,在Java 8中,您可以使用注释-因此您可以对“主要”(例如第一个)进行细化或添加后续重复相同注释所带来的其他细化。

您是否计划创建一个将使用该注释的框架?MyAnnotation是否派生自
SomeType
?(对,我不这么认为)。那么您想如何创建一个
SomeType
数组,其中包含一个不是
SomeType
类型的元素?@TimBiegeleisen-yes.@adriancolomychi
valueX
subValueY
都是
SomeType
是,但
@MyAnnotation({subValue1,subvalue2,…})类型的数组value2
不是
SomeType
类型的值。您是否计划创建一个将使用此值的框架?MyAnnotation是否源自
SomeType
?(对,我不这么认为)。那么您想如何创建一个
SomeType
数组,其中包含一个不是
SomeType
类型的元素?@TimBiegeleisen-yes.@adriancolomychi
valueX
subValueY
都是
SomeType
是,但
@MyAnnotation({subValue1,subvalue2,…})类型的数组value2
不是
SomeType
类型的值。这只是解释了如何多次使用同一注释。不完全符合我的问题。加上彼此使用的注释是不同的
JsonSubTypes.Type
JsonSubTypes
中使用。注释被视为元数据。它们不是对象,因此它们与其他实例(如String)不共享同一祖先对象。这只是解释了如何多次使用同一注释。不完全符合我的问题。加上彼此使用的注释是不同的
JsonSubTypes.Type
JsonSubTypes
中使用。注释被视为元数据。它们不是对象,因此它们与字符串等其他实例不共享相同的祖先对象。这会导致编译器错误:
Cyclic annotation element type
,正如我所说的。。。“也许”。回到可重复的状态。或者创建另一个具有类似值的注释这会导致编译器错误:
循环注释元素类型
,正如我所说的。。。“也许”。回到可重复的状态。或者创建另一个具有类似值的注释
public @interface MyAnnotation(){
    public SomeType[] value();

    public MyAnnotation[] refine();
}

@MyAnnotation(
  {value1, value2},
  refine={ @MyAnnotation({valueX, valueY}), @MyAnnotation(valueM) }
)
public Object someProperty;