1、什么是函数式接口
只有一个方法的接口就是函数式接口
@FunctionalInterface
public interface Runnable {
public abstract void run();
}
2、四大函数式接口
consumer | 只有输入,无返回值 | |
Function | 一个输入参数,一个输出参数 | |
Predicate | 返回一个布尔值 | |
supplier | 无参数,只有返回值 |
1)、Consumer
package com.function;
import java.util.function.Consumer;
//函数式接口 只有输入。无返回值 消费型接口
public class consumer {
public static void main(String[] args) {
// Consumer<String> consumer = new Consumer<String>() {
// @Override
// public void accept(String o) {
// System.out.println(o);
// }
// };
Consumer<String> consumer = (str)->{
System.out.println(str);
};
consumer.accept("abc");
}
}
2)、Function
package com.function;
import java.util.function.Function;
//函数式接口,function函数式接口,一个输入参数一个输出参数
public class function01 {
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;
};
System.out.println(function.apply("abc"));
}
}
3)、Predicate
package com.function;
import java.sql.SQLOutput;
import java.util.function.Predicate;
//函数式接口 predicate 返回一个boolean值 断定型接口
public class predicate01 {
public static void main(String[] args) {
// Predicate<String> predicate = new Predicate<String>() {
// @Override
// public boolean test(String s) {
// return true;
// }
// };
Predicate<String> predicate = (str)->{
return true;
};
System.out.println(predicate.test("abc"));
}
}
4)、Supplier
package com.function;
import java.util.function.Supplier;
//供给型接口,无参数,只有返回值
public class supplier01 {
public static void main(String[] args) {
// Supplier<String> supplier = new Supplier() {
// @Override
// public String get() {
// return "abc";
// }
// };
Supplier<String> supplier = ()->{
return "abc";
};
System.out.println(supplier.get());
}
}