【问题标题】:AspectJ - pattern signaturesAspectJ - 模式签名
【发布时间】:2016-05-12 20:08:53
【问题描述】:

我正在研究自动代码生成 (AspectJ),但我对以下模式签名之间的区别感到困惑:

  1. javax..*型号
  2. javax..*Model+
  3. javax.*型号
  4. javax.*Model()

这个答案正确吗?

  1. 以Model结尾的方法,定义在javax包下。
  2. javax 包下任何以 Model 结尾的 Method 子类型。
  3. 以继承自 javax 类的 Model 结尾的方法。
  4. 以 Model 结尾的方法继承自 javax 类,没有参数。

或者说它们之间没有区别??

谢谢,

【问题讨论】:

    标签: java aspectj aspect


    【解决方案1】:

    这实际上取决于您在哪里使用它们。它们自己可以识别类型、方法或字段,具体取决于您使用的切入点。

    以下是不同语法的描述,以及它们与您的问题的关系:

    1. 键入切入点

      [注解] [修饰符] type_name

      • javax..*Model 将匹配 javax 包中名称以 Model 结尾的任何类型(即:类、接口或枚举)。
      • javax..*Model+ 将匹配 javax 包中名称以 Model 结尾的类型的任何子类型。
    2. 方法切入

      [注解] [修饰符] return_type 方法名(参数)

      • * javax..*Model.*(..) 将匹配在 javax 包中名称以 Model 结尾的类中声明的任何方法。

    【讨论】:

      猜你喜欢
      • 2014-08-06
      • 2011-05-06
      • 1970-01-01
      • 2012-08-21
      • 1970-01-01
      • 2018-11-10
      • 2011-04-22
      • 2021-05-28
      • 2013-07-08
      相关资源
      最近更新 更多