Java 8 函数式接口
函数式接口(FunctionalInterface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。
函数式接口可以被隐式转换为lambda表达式。
函数式接口可以现有的函数友好地支持 lambda。
JDK 1.8之前已有的函数式接口:
· java.lang.Runnable
· java.util.concurrent.Callable
· java.security.PrivilegedAction
· java.util.Comparator
· java.io.FileFilter
· java.nio.file.PathMatcher
· java.lang.reflect.InvocationHandler
· java.beans.PropertyChangeListener
· java.awt.event.ActionListener
· javax.swing.event.ChangeListener
JDK 1.8 新增加的函数接口:
· java.util.function
Consumer<T>
代表了接受一个输入参数并且无返回的操作
Function<T,R>
接受一个输入参数,返回一个结果。
Predicate<T>
接受一个输入参数,返回一个布尔值结果。
Supplier<T>
无参数,返回一个结果。
IntBinaryOperator
接受两个参数同为类型int,返回值类型也为int 。
等等方法(此处只列举重要的)
Lambda 表达式
Collections.sort(names, (String a, String b) -> {
return b.compareTo(a);
});
甚至可以写成
Collections.sort(names, (a, b) -> b.compareTo(a));
引用https://blog.csdn.net/weixin_55932015/article/details/115138516
写的不错