亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

然后在消費者接口中使用 lambda

然后在消費者接口中使用 lambda

精慕HU 2022-10-26 16:24:06
我可以用 lambdas 鏈接 andThen 嗎?我知道我可以這樣做:myList.forEach(myConsumer1.andThen(myConsumer2));但是如果我想提供一個 lambda(e)->{ some actions }而不是myConsumer1和另一個 lambda (e)->{ some more actions }而不是myConsumer2呢?我試過了,但它不起作用。但是一般來說有可能嗎 - 也許我不知道正確的語法。PS我的問題(從實際角度來看)與標記為“可能已經回答”的問題不同 - 它完全不同,鏈接的帖子對我的問題沒有實際有用的信息 - 我不知道如何描述鱷魚是不同于愛情。
查看完整描述

2 回答

?
慕婉清6462132

TA貢獻1804條經驗 獲得超2個贊

您可以這樣做,但您需要顯式轉換 lambda 表達式。

您示例中的 lambda 表達式(e)->{ some actions }不一定是Consumervoid accept(T t);它可能是您自己的功能接口,具有與from相同的簽名Consumer,但沒有andThen方法。編譯器不知道這一點。所以你需要幫助編譯器:

list.forEach(((Consumer<Integer>) e -> someAction).andThen(i -> someMoreAction));


查看完整回答
反對 回復 2022-10-26
?
長風秋雁

TA貢獻1757條經驗 獲得超7個贊

是的,您可以這樣做,但它需要正確轉換 lambda。


      int[] val = { 23

      };

      Consumer<Integer> con = ((Consumer<Integer>) (a) ->

      {

         for (int i = 1; i < a; i++) {

            val[0] += i;

         }

      }).andThen((b) -> System.out.println(val[0] * b));


      con.accept(10);


查看完整回答
反對 回復 2022-10-26
  • 2 回答
  • 0 關注
  • 117 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號