【发布时间】:2018-05-10 07:06:11
【问题描述】:
我有一个代码,我在每个 Rest Service 上重复这样的代码:
user = getUserByToken(request.getToken());
if (user == null) {
response = this.buidResponse(Response.status(Status.UNAUTHORIZED));
}else{
do things...
}
return response;
我想创建一个方法来避免重复前 4 行,例如:
bool validateUser(String token, User userOut, Response responseOut){
userOut = getUserByToken(token);
if (userOut == null) {
responseOut = this.buidResponse(Response.status(Status.UNAUTHORIZED));
return false;
}
return true;
}
但是就像在Java中参数是通过value-ref传递的一样,参数在方法之外并不维护它的值...
我有什么选择?
【问题讨论】:
-
responseOut是一个局部变量,就像所有方法参数一样。 Java 没有输出参数的概念。 -
解决这个问题的最简单方法是传递一个容器(如数组)作为参数,并修改容器的内容。但在这种情况下,您可以只从您的方法返回响应,而不是布尔值。