簡體   English   中英

Java中的注釋元素可以是不同注釋的數組嗎?

[英]Elements of annotation in Java can be array of different annotations?

我正在嘗試用Java創建自定義注釋,問題是是否可以使用“注釋數組”類型的元素創建自定義注釋,並且此數組中的每個元素都將來自不同的類型。

例如:

@MyCustomArrayOfAnnotation({@MyCustomAnnotationType1, @MyCustomAnnotationType2})

如果可能的話,如何聲明這個自定義注釋?

這是不可能的。

Java語言規范的第9.6.1節指出,注釋元素/成員可以是以下類型:

  • 原始類型
  • String
  • Class
  • 枚舉類型
  • 注釋類型
  • 數組類型,其組件類型是上述類型之一。

這表明注釋可能包含注釋數組。

但是,注釋之間沒有子類型。 因此,注釋只能包含同構數組,而不能包含異類數組。

均質數組的一個示例(允許)是

@MyCustomArrayOfAnnotation({@MyCustomAnnotationType1("a"), @MyCustomAnnotationType1("b")})

異構數組的示例(不允許)是您的示例:

@MyCustomArrayOfAnnotation({@MyCustomAnnotationType1, @MyCustomAnnotationType2})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM