今天总结了一下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();
本文通过具体示例介绍了Java8中新增的Consumer、Function、Predicate和Supplier等接口的使用方法,帮助读者理解并掌握这些接口的功能及应用场景。
2508

被折叠的 条评论
为什么被折叠?



