0

我在几种方法中有一个名为“服务器”的参数:

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
  }
}

在使用参数调用实际方法之前调用的某种“预处理器” 。我只是不记得这个预处理的名称是什么。或者如果它是基于注释的或其他的。但我认为这是一个注释。

谢谢塞巴斯蒂安
_

4

1 回答 1

3

您正在寻找的通用术语是方法拦截器。它们有多种实现方式。面向方面的编程是一种方式。请参阅教程http://www.javaworld.com/javaworld/jw-01-2002/jw-0118-aspect.html。如果您使用的是 Spring 或 JBoss 等框架,则内置了拦截器注释。

于 2013-01-27T04:32:16.560 回答