在JDK 1.8 里面提供了一个包:java.util.function,提供了以下四大核心接口:
1.功能型接口(Function):public interface Function<T,R>{public R apply(T t);}
2.消费型接口(Consumer):public interface Consumer<T>{public void accept(T t);}
3.供给型接口(Supplier):public interface Supplier<T>{public T get()}
4.断言型接口(Predicate):public interface Predicate<T>{public boolean test(T t);}
范例1:功能型接口
import java.util.function.Function;
public class Demo {
public static void main(String[] args) {
Function<String, Boolean> fun = "GoodBoy"::startsWith;
System.out.println(fun.apply("Good"));
}
}
=============分割线=============
范例2:消费型接口
import java.util.function.Consumer;;
class MyDemo{
public void print(String str) {
System.out.println(str);
}
}
public class Demo {
public static void main(String[] args) {
Consumer<String> con=new MyDemo()::print;
con.accept("Good!");
}
}
=============分割线=============
范例3:消费型接口
import java.util.function.Consumer;;
public class Demo {
public static void main(String[] args) {
Consumer<String> con = System.out::println;
con.accept("Nice!");
}
}
=============分割线=============
范例4:供给型接口
import java.util.function.Supplier;
public class Demo {
public static void main(String[] args) {
Supplier<String> sup = "hello".substring(2, 5)::toUpperCase;
String str = sup.get();
System.out.println(str);
}
}
=============分割线=============
范例4:断言型接口
import java.util.function.Predicate;
public class Demo {
public static void main(String[] args) {
Predicate<String> pre = "Good"::endsWith;
System.out.println(pre.test("od"));
}
}