函数式接口作为方法的参数
public class RunabelDemo {
public static void main(String[] args) {
//Lambda
threading(()->{
System.out.println(Thread.currentThread().getName()+"线程启动了");
});
}
private static void threading(Runnable r){//@FunctionalInterface说明是函数式接口
new Thread(r).start();
}
}
函数式接口做方法的返回值
Compatator是一个函数式接口
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class compertorDemo {
public static void main(String[] args) {
ArrayList<String >al=new ArrayList<String >();
al.add("aa");
al.add("b");
al.add("ccc");
al.add("dddd");
System.out.println("排序前:"+al);
Collections.sort(al,comper());
System.out.println("排序后:"+al);
}
private static Comparator<String> comper(){
//匿名内部类
// Comparator<String> c=new Comparator<String>() {
// @Override
// public int compare(String o1, String o2) {
// return o1.length()-o2.length();
// }
// };
// return c;
// }
return(String s1,String s2)->{
return s1.length()-s2.length();}
;
}
}