2016-05-12 19 views
1

我天花板高度自動代碼生成(AspectJ的),並且我混淆關於如下模式簽名之間的順從:AspectJ的 - 圖案簽名

  1. 的javax .. *模型
  2. 的javax .. *型號+
  3. 的javax。*型號
  4. 的javax。*模型()

這是回答正確嗎?

  1. 以Model結尾的方法,它在javax包下定義。
  2. 以javax包下的Model結束的任何子類型的Method。
  3. 以從javax類繼承的Model結束的方法。
  4. 從Model繼承自Model的類沒有參數的方法。

或者它們之間沒有什麼區別?

謝謝,

回答

0

它實際上取決於你在哪裏使用這些。通過它們本身,它們可以識別類型,方法或字段,具體取決於您使用的切入點。

這裏有不同的語法的說明,以及它們如何與你的問題:

  1. 類型poincuts

    [註釋] [修飾符] TYPE_NAME

    • javax..*Model將匹配任何類型(即:類,接口或枚舉)的名稱爲en ds Model,在javax包中。
    • javax..*Model+將匹配Model包中的名稱以Model結尾的任何子類型。
  2. 方法poincuts

    [註釋] [改性劑] return_type METHOD_NAME(參數)

    • * javax..*Model.*(..)將匹配在一類具有與Model結尾的名稱聲明的任何方法,在javax包中。