2016-04-05 14 views
0

は、Javaの演算子の意味は何である「 - >」次のコードでは、SpringBootアプリケーションの初期化から取られたように:これはlambda expressionためである意味は、「 - >」

@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); 
     }); 
    } 

答えて

2

これは、Java 8で初めて導入された言語機能です。基本的に、これはパラメータとしてcontainerを使用するインラインの匿名関数です。通常はlambdasが値を返しますが、ここではaddErrorPagesからcontainerにコールするという「副作用」を実行しているようです。 containerに指定された型はありません。Javaはコンテキストからそれを知るためです。

ラムダ式は言語機能以上のもので、コンピュータサイエンスと関数型プログラミングの全領域でもあります。それらを記述する良いSOの投稿はhereです。

関連する問題