spring Cloud Gateway 自定義過濾器時關於lambda寫法的疑惑

瀏覽之前同事寫的自定義過濾器時發現了一個使用lambda寫法的代碼

不理解(exchange, chain)這兩個參數是在哪裏定義,找了父類也沒有發現對應的變量,進入lambda表達式查看執行類。

也沒有發現是哪裏來的這兩個參數,回到自定義過濾器仔細觀察,發現實際調用地點並不是自定義過濾器的位置,過濾器這裏是返回了一個GatewayFilter的實體對象,也就是說這個lambda相當於做了一個接口實現類的實體創建邏輯,並將實體返回。跟換爲匿名內部類的寫法可能更好理解。

理解關鍵點:這裏並沒有使用到對象內部方法只是返回了一個對象,這個對象在實際使用調用方法時纔會傳入exchange, chain這兩個參數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章