gpt4 book ai didi

java - 如何将一个函数的验证包装在另一个函数中?

转载 作者:行者123 更新时间:2023-12-05 07:44:55 25 4
gpt4 key购买 nike

例如,您有一堆函数都需要检查登录验证。首先,它看起来像:

public Response createThing(){
if(!validLogin(httpRequest, uriInfo)){
return Response.status(Response.Status.FORBIDDEN);
}

//Do the function
}

第一个代码块存在于每个服务调用的顶部,但我不知道如何将它包装到另一个函数中,因为它包含一个返回语句。我想要类似于以下内容的内容:

public Response createThing(){
validateLogin(httpRequest, uriInfo);

//Do the function
}

public Response createThing(){
//Implied check somehow?

//Do the function
}

我敢肯定人们会使用一些模式或惯例。谢谢。

最佳答案

Java 8 开始,函数被视为一等公民。这允许您以前所未有的方式重用代码。您可以创建一个包含固定部分和可变部分的模板方法,如下所示:

public <T,U,R extends Response> R doSomething(final BiFunction<T,U,R> funct,T input1,U input2){
if(validLogin(input1, input2)) {//fixed part
return funct.apply(input1,input2);//variable part
}
}

关于java - 如何将一个函数的验证包装在另一个函数中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42368876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com