JDK1.8新特性:函数式接口
1、内建的函数式接口
① Function
- 表示一个函数(方法),他接受一个单一的参数并返回一个单一的值。
@Test
public void testFunction() {
Function<String, Long> some = (value) -> {
Long result = Long.parseLong(value);
return result;
};
Long apply = some.apply("Hello");
System.out.println(apply);
}
② Predicate
- 表示一个简单的函数,它只取一个值作为参数,并返回真或假。
@Test
public void testPredicate() {
Predicate<String> some = (value) -> value != null;
boolean result = some.test("Hello");
System.out.println(result);
}
③ UnaryOperator
- 代表一个操作,它接受一个参数,并返回一个相同类型的参数。
@Test
public void testUnaryOperator() {
UnaryOperator<User> some = (user) -> {
user.setAge(18);
return user;
};
User result = some.apply(new User());
System.out.println(result);
}
④ BinaryOperator
- 代表一个接受两个参数并返回一个值的操作
@Test
public void testBinaryOperator() {
BinaryOperator<Integer> some = (age1, age2) -> age1 + age2;
Integer result = some.apply(1, 1);
System.out.println(result);
}
⑤ Supplier
- 代表一个函数,它提供了某种类型的值
@Test
public void testSupplier() {
Supplier<Integer> some = () -> 1 + 1;
Integer result = some.get();
System.out.println(result);
}
⑥ Consumer
- 代表一个接受一个参数而不返回任何值的函数。
@Test
public void testConsumer() {
Consumer<String> some = (value) -> System.out.println(value);
some.accept("hello");
}