本文主要是介绍一个关于lambada表达式的错误,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
需求
遍历存放session的list,如果list中存在一个session和当前发起请求的浏览器的session相同,则跳出方法。
/*request对象监视器
*/
public class MyRequestListener implements ServletRequestListener{/*监视request对象的创建*/ @Overridepublic void requestInitialized(ServletRequestEvent sre) {(HttpServletRequest)request = (HttpServletRequest)sre.getServletRequest();HttpSession currentSession = request.getSession();ServletContext context = sre.getServletContext();List<HttpSession> = (List<HttpSession>)context.getAttribute("list");//错误在这里,里面的return;会跳出lambda表达式,而且这个return毫无作用list.forEach((HttpSession s)->{if(s == currentSession){return;}});list.add(currentSession);}
}
上面的错误在于在lambda表达式里面写上return,最后会跳出lambda表达式。
如果想跳出方法,就写成一般的循环即可
public void function(){for(HttpSession s:list){if(s == currentSession){return;}}
}
就写成上面即可。
这篇关于一个关于lambada表达式的错误的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!