当前位置: 首页 > 知识库问答 >
问题:

多重注释

汤玉宸
2023-03-14

因为不可能在同一个目标上有重复的注释,所以我正在研究一种解决方法。我需要的可能是:

@Parent(sex="F", name="Alice")
@Parent(sex="M", name="Bob")
@Sibling(sex="M", name="Charlie")
@Sibling(sex="M", name="Dan")
@Sibling(sex="F", name="Eve")

我考虑过添加另一个注释@Relates来包含它们,将值成员声明为相对注释的数组。

@Relatives({
    @Parent(sex="F", name="Alice")
    @Parent(sex="M", name="Bob")
    @Sibling(sex="M", name="Charlie")
    @Sibling(sex="M", name="Dan")
    @Sibling(sex="F", name="Eve")
})

但是我不能像那样定义数组,因为@Parent和@ Sibling @接口不能扩展任何@Relative超类。

除了定义两个不同的数组Sibling[]Sibling和Parent[] parents之外,还有其他方法吗?但是这将会产生类似于

@Relatives(
    parents={
        @Parent(sex="F", name="Alice"),
        @Parent(sex="M", name="Bob")
    }
    siblings={
        @Sibling(sex="M", name="Charlie")
        @Sibling(sex="M", name="Dan")
        @Sibling(sex="F", name="Eve")
   }
)

共有1个答案

伯洋
2023-03-14

在 1.8 中,你有一个半生不熟的可重复注释方式,请参阅 java.lang.annotation.可重复 的诀窍是你仍然需要声明你的@Parents和@Siblings,但是:

> < li>

使用它们时,可以省略包含注释

在扫描(自省)它们时,您将在它们的包含注释(在本例中为@Parents@Siblings)中找到可重复的注释。

    public @interface Parents {
      Parent[] value();
    }

    // this says: will be repeated inside a `Parents` nest
    @Repeatable(Parents.class) 
    public @interface Parent {
      String name();

      String sex() default "F";
    }

那么你可以

@Parent(sex="F", name="Alice"),
@Parent(sex="M", name="Bob")
Child firstChild;

另请参阅 Oracle 站点上的“重复注释”

 类似资料:
  • 我有两个EJB实现相同接口,我有一些限定符: 而且 和我的错误: 原因:org.jboss.weld.exceptions.deploymentexception:Weld-001408:类型IConnectorService的依赖关系不满足,其限定符为@MetrilioConnector在注入点[UnbackedAnnotatedField]@MetrilioConnector@Inject c

  • 我不能用“”运算符和多个注释来做切入点。我试图为一些JBehave注释创建一个切入点(@givid、@then、@when)。 为这三个注释创建切入点的语法是什么?因为我在其他切入点中使用了逻辑OR运算符,所以我假设它类似于: 但是它不起作用,我得到一个不一致的绑定异常。我尝试了其他组合,但找不到一个这样做的诀窍。

  • 本文向大家介绍dart 多行注释,包括了dart 多行注释的使用技巧和注意事项,需要的朋友参考一下 示例 /*和之间的所有*/内容均已评论。            

  • 本文向大家介绍Lua多行注释和取消多行注释的方法,包括了Lua多行注释和取消多行注释的方法的使用技巧和注意事项,需要的朋友参考一下 1、lua多行注释: 2、取消多行注释:

  • 我试图了解spring依赖注入是如何工作的。根据我的理解,如果我们将一个类声明为带有注释的bean,并在需要注入依赖关系的另一个类中为该bean使用注释,则会将该bean注入为依赖关系。对于例如。 假设我们有接口,实现,并且我们将声明为。如果我们有一个带有引用的主类,并且我们在Iservice引用上做了注释,则将被注入到引用中。 但是,我的问题是,如果有两个类和实现,并且我们使用。spring将如

  • 本文向大家介绍PowerShell单行注释、多行注释、块注释的方法,包括了PowerShell单行注释、多行注释、块注释的方法的使用技巧和注意事项,需要的朋友参考一下 PowerShell的注释符分为行注释符和块注释符。行注释符使用井号(#)引起一行;块注释符使用“<#”和 “#>”来引起一段注释。 行注释符 举例如下: 块注释符、多行注释 举例如下: 这是小编每次写脚本之前,都会定义的一段关于脚