函数式接口: 有且只有一个方法的接口
@FunctionalInterface
public interface Runnable {
public abstract void run();
}
简化编成模型 在新版本的框架底层大量应用
/*
* Function 函数型接口 有一个输入参数 有一个输出参数
* 只要是函数式接口 都可以用lambda表达式简化
*
* */
public class Demo01 {
public static void main(String[] args) {
Function function = new Function<String, String>() {
@Override
public String apply(String str) {
return str+" ok";
}
};
System.out.println(function.apply("it's"));
Function<Integer,String> function2 =(str)-> {return str+ 666 +" ---NB";};
System.out.println(function2.apply(6000));
}
}
断定型接口
/*
* Predicate 断定型接口 有一个输入参数 返回是布尔值
* 只要是函数式接口 都可以用lambda表达式简化
*
* */
public class Demo02 {
public static void main(String[] args) {
Predicate<String> predicate = new Predicate<String>() {
@Override
public boolean test(String str) {
return str.isEmpty();
}
};
// System.out.println(predicate.test("it's"));
// System.out.println(predicate.test(""));
Predicate<String> predicate2 = (str)->{ return str.isEmpty();};
System.out.println(predicate2.test("it's"));
System.out.println(predicate2.test(""));
}
}
消费型接口
/*
* Consumer 消费型接口 只有输入值 没有返回值
* */
public class Demo03 {
public static void main(String[] args) {
// Consumer<String> consumer = new Consumer<String>() {
//
// @Override
// public void accept(String str) {
// System.out.println("66666666");
// System.out.println(str);
//
// }
// };
Consumer<String> consumer = (str) -> {
System.out.println(str);
};
consumer.accept("777777");
}
}
供给型接口
/*
* Supplier 供给型接口 没有参数 只有返回值
* */
public class Demo04 {
public static void main(String[] args) {
// Supplier<String> supplier = new Supplier<String>() {
//
// @Override
// public String get() {
// return "6666";
// }
// };
Supplier<String> supplier = () -> {
return "6666";
};
System.out.println(supplier.get());
}
}