什么是函数式接口
有且只有一个方法
实现方式可以用lambda改写
四大函数式接口
Function 函数式接口,有参数有返回值
/**
* Function 函数式接口
*/
public class demo1 {
public static void main(String[] args) {
// Function<String,String> function = new Function<String,String>() {
// @Override
// public String apply(String str) {
// return str;
// }
// };
Function<String,String> function = (str)->{
return str;
};
function.apply("111");
}
}
Predicate 断定式接口
/**
* Predicate 断定式接口
*/
public class demo1 {
public static void main(String[] args) {
// Predicate<String> predicate = new Predicate<String>() {
// @Override
// public boolean test(String str) {
// return str.isEmpty();
// }
// };
Predicate<String> predicate = (str)->{
return str.isEmpty();
};
predicate.test("abc");
}
}
Consumer 消费型接口
/**
* Consumer 消费式接口
*/
public class demo1 {
public static void main(String[] args) {
// Consumer<String> consumer = new Consumer<String>() {
// @Override
// public void accept(String s) {
// System.out.println(s);
// }
// };
Consumer<String> consumer = (str)->{
System.out.println(str);
};
consumer.accept("123");
}
}
Supplier 供给型接口
/**
* Supplier 供给型接口
*/
public class demo1 {
public static void main(String[] args) {
// Supplier supplier =new Supplier() {
// @Override
// public String get() {
// return "123";
// }
// };
Supplier supplier = ()->{
return "123";
};
supplier.get();
}
}