java注释的组合
我知道。但是在java中有可能做类似的事情吗java注释的组合,java,annotations,Java,Annotations,我知道。但是在java中有可能做类似的事情吗 @TopAnnot({ @SubAnnot("value1"), @SubAnnot("value2"), @AnotherSubAnnot("value3"), @SubAnnot("value4") }) public void aMethod(String param) { ... } @子批注和另一个子批注的顺序很重要 因此,以下解决方案的含义不同,因为我无法维持注释的顺序: @TopAnnot( s
@TopAnnot({
@SubAnnot("value1"),
@SubAnnot("value2"),
@AnotherSubAnnot("value3"),
@SubAnnot("value4")
})
public void aMethod(String param) { ... }
@子批注
和另一个子批注的顺序很重要
因此,以下解决方案的含义不同,因为我无法维持注释的顺序:
@TopAnnot(
subAnnot = {
@SubAnnot("value1"),
@SubAnnot("value2"),
@SubAnnot("value4")
},
annotherAnnot = {
@AnotherSubAnnot("value3")
}
)
public void aMethod(String param) { ... }
另一个解决方案应该是以下内容,但编写起来要复杂得多,也不容易理解:
@TopAnnot({
@MyAnnot(type=AnnotType.SubAnnot, value = "value1"),
@MyAnnot(type=AnnotType.SubAnnot, value = "value2"),
@MyAnnot(type=AnnotType.AnnotherSubAnnot, value = "value3"),
@MyAnnot(type=AnnotType.SubAnnot, value = "value3")
})
public void aMethod(String param) { ... }
有更简单的解决方案吗?您可以通过使用添加一些可读性,但这并不能解决实际问题。它仍然使用只保留每个类型声明顺序的容器注释。因此,您可以使其看起来像第一个示例,但您仍然不知道运行时的实际顺序
@SubAnnot("value1"),
@SubAnnot("value2"),
@AnotherSubAnnot("value3"),
@SubAnnot("value4")
public void aMethod(String param) { ... }
我认为在运行时没有很好的解决方案。如果您可以访问源代码,那么在编译时应该可以获得声明的顺序
如果您在运行时需要一个解决方案,您可能需要使用示例中的类型
字段,或者添加另一个显式声明订单的字段,例如:
@SubAnnot(id=1, value="value1")
@AnotherSubAnnot(id=2, value="value2"))
@SubAnnot(id=3, value="value3")
您可以通过使用添加一些可读性,但这并不能解决实际问题。它仍然使用只保留每个类型声明顺序的容器注释。因此,您可以使其看起来像第一个示例,但您仍然不知道运行时的实际顺序
@SubAnnot("value1"),
@SubAnnot("value2"),
@AnotherSubAnnot("value3"),
@SubAnnot("value4")
public void aMethod(String param) { ... }
我认为在运行时没有很好的解决方案。如果您可以访问源代码,那么在编译时应该可以获得声明的顺序
如果您在运行时需要一个解决方案,您可能需要使用示例中的类型
字段,或者添加另一个显式声明订单的字段,例如:
@SubAnnot(id=1, value="value1")
@AnotherSubAnnot(id=2, value="value2"))
@SubAnnot(id=3, value="value3")