Java8新特性之四函数式接口

来源:互联网 发布:同济大学网络教育 编辑:程序博客网 时间:2024/06/05 18:08
package com.guigu.java8;


import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;
/**
 * Java8新特性:函数式接口:(常用的只有4中)
 *   1):功能型接口/函数式接口(Function):public interface Function<T,R>{public R apply(T t);}
 *     |-此接口需要接收一个参数,并且返回一个处理结果     "有进有出"
 *   2):消费性接口(Consumer):public Consumer<T>{public void accept(T t);}
 *     |-:此接口要接收一个参数,但是不返回一个处理结果【没有返回值】    "有进无出"
 *   3):供给型接口(Supplier):public Supplier<R>{public void get();}
 *     |-:此接口不需要接收一个参数,但是返回一个处理结果           "有出无进"
 *   4):断言行接口(Predicate):public interface Predicate<T>{public boolean test(T t);}
 *     |-此接口要接收一个参数,但是返回一个boolean类型处理结果,是进行单元测试用的   "有进有出"
 * @author pqd
 *
 */
class MyDemo{
public void print(String str){  //此方法没有返回值,但是有参数
System.out.println(str);
}
}
public class FunctionInterfaceDemo {
public static void main(String[] args) {
//1:函数式接口--接收参数并且返回一个处理结果
Function<String,Boolean> fun="##hello"::startsWith;
boolean flag=fun.apply("##");
System.out.println(flag);
//2:消费性接口--接收参数没有返回一个处理结果
   Consumer<String> consumer=new MyDemo()::print;
   consumer.accept("System");
   //3:供给型接口--不需要接收一个参数,但是返回一个处理结果 
   Supplier<String> supplier="hello"::toUpperCase;
   String str=supplier.get();
   System.out.println(str);
   //4:断言行接口--接收一个参数,但是返回一个boolean类型处理结果
   Predicate<String> predicate="hello"::equalsIgnoreCase;
   String str2="HELLO";
   System.out.println(predicate.test(str2));
}
}
原创粉丝点击