目的:
想向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也是可以进行函数的传递的,这样提供面向函数会方便很多。