我在几种方法中有一个名为“server”的参数:
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 等框架,则会内置拦截器注释。
关于java - 在方法调用之前修改参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14544428/