我在几种方法中都有一个名为“server”的参数:
public synchronized Client getClientByStreamId(String streamId, Server server) {
//some logic
}
public Client getClientByPublicSID(String publicSID, boolean isAVClient, Server server) {
//some logic
}
我想要的是每次调用这些方法时都会进行检查,这是在调用方法之前对param服务器执行的:
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
}
}
在实际方法之前使用params调用某种称为的“预处理器”。 我只是不记得这个预处理的名称是什么。或者,如果它是基于注释或其他东西。但我认为这是一个注释。
感谢
塞巴斯蒂安
答案 0 :(得分:3)
您正在寻找的一般术语是方法拦截器。它们的实施方式有很多种。面向方面编程是一种方式。请参阅教程http://www.javaworld.com/javaworld/jw-01-2002/jw-0118-aspect.html。如果您使用的是Spring或JBoss等框架,则会内置拦截器注释。