函数式接口
import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Predicate; import java.util.function.Supplier; public class FunctionTest { public static void main(String[] args) { //Function // Function<String, String> function = new Function<String, String>() { // @Override // public String apply(String s) { // return s; // } // }; Function<String, String> function = (str)->{return str;}; System.out.println(function.apply("124")); // MyFunction<Integer, String> function1 = new MyFunction<Integer, String>() { // @Override // public int add(int a, int b) { // return a + b; // } // }; MyFunction function1 = (a, b)->{ System.out.println("return a+b"); return a+b; }; System.out.println(function1.sum(4, 86)); //Predicate // Predicate<String> predicate = new Predicate<String>() { // @Override // public boolean test(String str) { // return str.equals("abc"); // } // }; Predicate<String> predicate = (str)->{ return str.equals("abc"); }; System.out.println(predicate.test("car")); //Consumer // Consumer<Integer> consumer = new Consumer<Integer>() { // @Override // public void accept(Integer args) { // System.out.println(args); // } // }; Consumer<Integer> consumer = (a)->{ System.out.println(a); }; Integer a = 20; consumer.accept(a); //Supplier // Supplier<String> supplier = new Supplier<String>() { // @Override // public String get() { // return "supplier"; // } // }; Supplier<String> supplier = ()->{ return "supplier"; }; System.out.println(supplier.get()); } interface MyFunction<T> { int sum(int a, int b); } }