Lambda方法引用

 

package com.sea.bean;

@FunctionalInterface
interface ClickListenner<T> {
    void onclick(T a);
}

class Receiver {
    public void doclick(String msg) {
        System.out.println(msg);
    }
}

class Provider {
    private ClickListenner<String> listenner;

    public Provider(ClickListenner<String> listenner) {
        this.listenner = listenner;
    }

    public void sendMessage() {
        listenner.onclick("click...");
    }
}

public class TestA {
    public static void main(String[] args) {
        {
            //原始写法
            Receiver receiver = new Receiver();
            Provider provider = new Provider(new ClickListenner<String>() {

                @Override
                public void onclick(String msg) {
                    receiver.doclick(msg);
                }
            });
            provider.sendMessage();
        }
        {
            // Lambda下的简写
            Receiver receiver = new Receiver();
            Provider provider = new Provider((msg) -> {
                receiver.doclick(msg);
            });
            provider.sendMessage();
        }
        {
            // Lambda下的极简写法
            Receiver receiver = new Receiver();
            Provider provider = new Provider(receiver::doclick);
            provider.sendMessage();
        }
    }
}

 

相关文章:

  • 2022-02-24
  • 2021-10-12
  • 2021-11-18
  • 2021-10-25
  • 2022-12-23
  • 2021-07-06
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-08-20
  • 2021-09-21
  • 2022-01-02
  • 2021-10-13
  • 2021-07-21
  • 2022-12-23
  • 2021-07-22
相关资源
相似解决方案