首頁 > Java > java教程 > 主體

AspectJ能否實作介面及其方法的註解繼承?

Patricia Arquette
發布: 2024-10-24 00:35:30
原創
310 人瀏覽過

Can AspectJ Achieve Annotation Inheritance for Interfaces and Their Methods?

AspectJ 可以模擬介面及其方法的註解繼承嗎?

Java 註解繼承受到限制,在介面、方法或方法上定義註解註解不是透過實作類別、重寫方法或使用註解的註解的類別繼承的。此限制適用於在 JVM 約束下執行的 AspectJ。

解決方案:在特定情況下模擬註解繼承

雖然註解繼承的通用解決方案不可用,但有一種解決方法特定介面或方法存在:

<code class="java">public aspect MarkerAnnotationInheritor {
  // Implementing classes inherit the marker annotation
  declare @type: MyInterface+ : @Marker;
  // Overriding 'two' method inherits the annotation
  declare @method : void MyInterface+.two() : @Marker;
}</code>
登入後複製

實作:

  • ITD(類型間定義)手動將註解新增至介面並實作/覆蓋類別/方法。
  • 介面或方法上的實際註解可以刪除。

結果:

控制台立即登入列印:

execution(de.scrum_master.app.Application())
execution(void de.scrum_master.app.Application.two())
登入後複製

。 >方面可以嵌入到介面中,將實現合併到一個位置。將檔案重新命名為 .aj 以供編譯器識別。

以上是AspectJ能否實作介面及其方法的註解繼承?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!