簡體   English   中英

在方法調用之前修改參數

[英]modifying parameter prior to method invocation

我在幾種方法中都有一個稱為“服務器”的參數:

public synchronized Client getClientByStreamId(String streamId, Server server) {
  //some logic
}

public Client getClientByPublicSID(String publicSID, boolean isAVClient, Server server) {
  //some logic
}

我想要的是,每次調用這些方法時,都會有一個檢查,該檢查調用該方法之前對參數服務器執行:

if (server == null) {
  server = someServer; //someServer is a variable I get somewhere else
}

據我所知,Java6中一定有一些帶有注釋的技巧,以便您可以執行類似(偽代碼)的操作:

@ManipulateArgs(MyMethod);
public synchronized Client getClientByStreamId(String streamId, Server server) {
  //some logic
}

@ManipulateArgs(MyMethod);
public Client getClientByPublicSID(String publicSID, boolean isAVClient, Server server) {
  //some logic
}

private MyMethod(Server server) {
  if (server == null) {
    server = someServer; //someServer is a variable I get somewhere else
  }
}

使用參數調用實際方法之前調用的某種“預處理程序”。 我只是不記得這個預處理的名稱是什么。 或者,如果它是基於注釋的話。 但是我認為這是一個注釋。

謝謝
塞巴斯蒂安

您所尋找的一般術語是方法攔截器 有多種實現方式。 面向方面的編程是一種方法。 請參閱教程http://www.javaworld.com/javaworld/jw-01-2002/jw-0118-aspect.html 如果您使用的是Spring或JBoss之類的框架,則內置了攔截器注釋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM