亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java - 如何將注釋應用于某些方法調用

java - 如何將注釋應用于某些方法調用

呼如林 2021-11-24 15:24:07
我想對某些方法調用應用注釋,以便我可以告訴 aspectj 修改這些調用的執行。public interface Door {  void open() throws DoorException;  void close() throws DoorException;}public class Ferrari {  @Inject @Lightweight Door door;  public void drive() {    open();    close();    open();  }}在這種情況下,我希望所有打開/關閉操作以相同的方式有效地包裝,但是如果我希望一個行為不同怎么辦?我想做類似的事情:public class Ferrari {      @Inject Door door;      public void drive() {        door.open();        door.close();        @Slowly door.open();      }    }我意識到我不能在那里放置注釋,但同樣的,我不想破壞開放簽名來傳遞可選的元數據。做這個的最好方式是什么?我可以這樣做:public class Ferrari {          @Inject Door door;          public void drive() {            door.open();            door.close();            ((@Slowly Door)door).open();          }        }
查看完整描述

2 回答

?
喵喔喔

TA貢獻1735條經驗 獲得超5個贊

我打算使用 2 個方面,1 將某些方法標記為“特殊”,然后在注冊表中放置一個標志,第二個將包裝對給定接口的所有調用并查看注冊表以查看該標志是否是放。


查看完整回答
反對 回復 2021-11-24
?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

我認為你不能這樣做,如果你想這樣做,也許你應該重新考慮如何組織你的代碼。

我不確定您為什么要這樣做,但有人猜測,也許對于某款特定的法拉利,您想以另一種方式打開車門。然后,您可以為特定模型擴展 Ferrari 類,并為 Door 接口使用不同的實現。我認為,您可以通過在 spring 中使用限定符或在 Java ee 中使用 @Named 來做到這一點。


查看完整回答
反對 回復 2021-11-24
  • 2 回答
  • 0 關注
  • 174 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號