Java 方法引用中对“引用某个类型的任意对象的实例方法”的理解

2019-04-14  本文已影响0人  西安法律咨询服务平台与程序员

方法引用是用来直接访问类或者实例的已经存在的方法或者构造方法。方法引用提供了一种引用而不执行方法的方式,它需要由兼容的函数式接口构成的目标类型上下文。计算时,方法引用会创建函数式接口的一个实例。

当Lambda表达式中只是执行一个方法调用时,不用Lambda表达式,直接通过方法引用的形式可读性更高一些。方法引用是一种更简洁易懂的Lambda表达式。

方法引用的形式一般分为以下四种:

String[] stringsArray = {"Hello","World"};
Comparator<String> c =  String::compareToIgnoreCase;
Arrays.sort(stringsArray, c);

与“引用某个对象的实例方法”不同,实例方法要通过对象来调用,方法引用对应Lambda,Lambda的第一个参数会成为调用实例方法的对象。用lambda表达式来表述上面的例子:

tring[] stringsArray = {"Hello","World"};
Comparator<String> c =  (s1, s2) -> s1.compareToIgnoreCase(s2);
Arrays.sort(stringsArray, c);
上一篇 下一篇

猜你喜欢

热点阅读