Function、Predicate、Consumer、Supplier
图片.png函数式接口(Function):
有一个输入参数,有一个输出值
public static void main(String[] args) {
Function function1 = new Function<String,String>() {
@Override
public String apply(String str) {
return str;
}
};
Function function2 = (str)->{
return str;
};
System.out.println(function1.apply("abc"));
System.out.println(function2.apply("ABC"));
}
********************结果:**************************
abc
ABC
图片.png断定型接口(Predicate):
有一个输入参数,返回值只能是布尔值!
public static void main(String[] args) {
Predicate predicate1 = new Predicate<String>() {
@Override
public boolean test(String str) {
return str.isEmpty();
}
};
Predicate<String> predicate2 = (str)->{
return str.isEmpty();
};
System.out.println(predicate1.test("123"));
System.out.println(predicate2.test(""));
}
********************结果:**************************
false
true
图片.png消费型接口(Consumer):
只有输入没有返回值
public class TestConsumer {
public static void main(String[] args) {
Consumer consumer1 = new Consumer<String>() {
@Override
public void accept(String str) {
System.out.println(str);
}
};
Consumer<String> consumer2 = (str)->{
System.out.println(str);
};
consumer1.accept("abc");
consumer2.accept("ABC");
}
}
********************结果:**************************
abc
ABC
图片.png供给型接口(Supplier):
没有参数,只有返回值。
public class TestSupplier {
public static void main(String[] args) {
Supplier supplier1 = new Supplier() {
@Override
public String get() {
return "200";
}
};
Supplier supplier2 = ()->{
return "404" ;
};
System.out.println(supplier1.get());
System.out.println(supplier2.get());
}
}
********************结果:**************************
200
404
网友评论