目的:
想向Scala的面向函数一样,在Java中也进行函数当做参数的传递。
流程:
首先需要定义一个函数接口:
@FunctionalInterface
public interface FilterPhoneFuction {
boolean filter(String phone);
default String getInfo(){
return "过滤手机号函数" ;
}
}
请注意java8中对函数接口定义的规范原则。
其次实现该接口:
public static void main(String[] args) {
FilterPhoneFuction phoneFuction = (phone)->{
System.out.println(phone);
return true ;
};
// phoneFuction.filter("aa");
hancle(phoneFuction);
}
然后看看是如何调用的:
private static void hancle(FilterPhoneFuction phoneFuction) {
List<String> list = Lists.newArrayList() ;
list.add("aa");
list.add("bb");
list.add("cc") ;
list.stream().forEach(phoneFuction::filter);
// List<String> phoneList = readTxtFile("");//获取手机号
}
打印:
aa
bb
cc
总结:如此来看Java也是可以进行函数的传递的,这样提供面向函数会方便很多。