java运算符“ - >”的含义是什么如下面的代码所示,取自SpringBoot应用程序的初始化:
@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);
});
}
答案 0 :(得分:2)
这适用于lambda expression,这是Java 8中首次引入的语言功能。基本上,这是一个以container
为参数的内联匿名函数。通常lambdas返回值,但在这里看起来它只是执行调用addErrorPages
到container
的“副作用”。没有为container
指定类型,因为Java会根据上下文来确定它。
Lambda表达式不仅仅是一种语言特性,它们还是计算机科学和函数式编程的整个领域。描述它们的好SO帖子是here。