java 8中 Consumer、Function、Predicate、Supplier接口的冒号使用详解

今天总结了一下java8中出现的几个新接口的使用方法,晚上又请教了一下艾哥,非常感谢他的教导,才能有机会写这篇文章。

话不多说直接上代码实例。

class TestClass{

    public void aaa(String aa){}

    public void aaa1(){return;}

    public String bbb1() {return "";}

    public String bbb(String a){return"";}

    public boolean ccc() {return true;}

    public Boolean ccc1(String aa) {return true;}

    public String ddd() {return "";}
}


Consumer的冒号的使用

    TestClass testClass=new TestClass();

例1

Consumer<String> consumer=testClass::aaa;
consumer.accept("111");
public void aaa(String aa){}

解释:小写调用::和大写调用含义是不一样的

 小写调用是将accept中的实参当做调用方法的入参传进入,Consumer的泛型要与调用方法的入参保持一致,否则会报错。

上面方法相当于这个形式。testClass.aaa("111");

例2

Consumer<TestClass> consumer1=TestClass::aaa1;
consumer1.accept(new TestClass());
public void aaa1(){return;}

大写调用是将accept中的实参去调用冒号后的方法,是调用,Consumer的泛型要与类保持一致。

上面方法相当于这个方法。new TestClass().aaa1();


其他几个接口的用法大致一致,含义大致相同,下面贴出代码,请自行写例子。

Function
例3
Function<String,String> function=testClass::bbb;
function.apply("222");
public String bbb(String a){return "";}
testClass.bbb("222")


 例4


Function<TestClass,String> function1=TestClass::bbb1;
function1.apply(new TestClass());
public String bbb1() { return "";}
new TestClass().bbb1();


Predicate
例5
Predicate<TestClass> predicate=TestClass::ccc;
predicate.test(new TestClass());
public boolean ccc() {return true;}
new TestClass().ccc();


    例6
Predicate<String> predicate1=testClass::ccc1;
predicate1.test("333");
public Boolean ccc1(String aa) { return true;}
testClass.ccc1("333");
 
Supplier
例7
这种方法是不能被调用的,理由自己想
Supplier<TestClass> supplier=TestClass::XXX;
例8

Supplier<String> supplier1=testClass::ddd;
supplier.get();
public String ddd() {return "";}
testClass.ddd();







  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值