四大函数式接口

☆樱花仙子☆ 提交于 2020-03-07 02:39:10

1.四大函数式接口

消费型接口:Consumer<T>

只有一个输入参数并且无返回值;

使用:

public class Demo {   
    public static void main(String[] args) {
            Data data = new Data();

            data.consumer();
        }


}
class Data{

    public void consumer() {
        handle(6, (x)-> System.out.println(x));
    }
    public void handle(int value, Consumer<Integer> consumer) {
        consumer.accept(value);
    }
    
}

供给型接口:Supplier<T>

 无输入参数,返回一个结果。

使用:

public class Demo {
​
    public static void main(String[] args) {
      
         Data data = new Data();
         System.out.println(data.supplier());
    }
​
​
}
class Data{
​
    public String supplier() {
      return  test( ()->  "hello" );
    }
    public String test( Supplier<String> supplier) {
       return supplier.get();
    }
​
}

函数型接口:Function<T,R>

接受一个输入参数T,返回一个结果R

使用:

public class Demo {
​
    public static void main(String[] args) {
        Function<String,Integer> function = (str)->{return str.length();};
        System.out.println(function.apply("a45645646"));
    }
​
​
}

断言型接口:Predicate<T>

接受一个输入参数T,返回一个布尔值结果

使用:

public class Demo {
​
    public static void main(String[] args) {
        Data data = new Data();
        // 判断是否是手机号
        boolean valid = data.valid("17610989843", x -> !x.isEmpty() && x.length()==11);
        System.out.println(valid);
    }
​
​
}
class Data{
​
    public boolean valid(String name, Predicate<String> predicate) {
        return predicate.test(name);
    }
}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!