下面的代码取自 SpringBoot 应用程序的初始化,java 运算符“->”的含义是什么:
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() {
return (container -> {
ErrorPage error401Page = new ErrorPage(HttpStatus.UNAUTHORIZED, "/401.html");
ErrorPage error403Page = new ErrorPage(HttpStatus.FORBIDDEN, "/403.html");
ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/404.html");
ErrorPage error500Page = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/500.html");
container.addErrorPages(error401Page, error403Page, error404Page, error500Page);
});
}
这是为了一个拉姆达表达式 https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html,这是 Java 8 中首次引入的语言功能。基本上,这是一个内联匿名函数,它需要container
作为参数。通常 lambda 返回值,但这里看起来它只是执行调用的“副作用”addErrorPages
to container
。没有指定类型container
正如 Java 从上下文中直觉得出的那样。
Lambda 表达式不仅仅是一种语言功能,它们也是计算机科学和函数式编程的整个领域。描述它们的一个很好的帖子是here https://stackoverflow.com/questions/16501/what-is-a-lambda-function.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)