| name | type | description |
|---|---|---|
| Consumer | Consumer |
接收T对象,不返回值 |
| Predicate | Predicate< T > | 接收T对象并返回boolean |
Consumer
说明:
- 消费某个对象
接口定义:
@FunctionalInterfacepublic interface Consumer<T> {void accept(T t);default Consumer<T> andThen(Consumer<? super T> after) {}}
使用:
- Iterable接口的forEach方法需要传入Consumer,大部分集合类都实现了该接口,用于返回Iterator对象进行迭代。
- 定义两个接口并实现不同方式的打招呼
- hi,~
- hello,~
方法内定义使用 ```java public static void main(String[] args) {
/*** 参数name,传入名字,以hi的方式打招呼*/Consumer<String> c1 = name -> {String format = MessageFormat.format("hi,{0}", name);System.out.println(format);};/*** 参数name,传入名字,以hi的方式打招呼*/Consumer<String> c2 = name -> {String format = MessageFormat.format("hello,{0}", name);System.out.println(format);};// 调用执行c1.accept("Tony");c2.accept("Grace");
}
输出—> hi,Tony hello,Grace
- 定义方法```javapublic static void main(String[] args) {sayHi().accept("Tony");sayHello().accept("Grace");}@NotNullprivate static Consumer<String> sayHello() {return name -> {String format = MessageFormat.format("hello,{0}", name);System.out.println(format);};}@NotNullprivate static Consumer<String> sayHi() {return name -> {String format = MessageFormat.format("hi,{0}", name);System.out.println(format);};}输出-->hi,Tonyhello,Grace
- 以接口实现类的方式。判断是否是成年人
```java
public static void main(String[] args) {
List
personList = initPerson(); personList.forEach(new PersonHandle()); }
public static List
// 实现该接口
class PersonHandle implements Consumer
@Overridepublic void accept(Person person) {if (person.getAge() >= 18) {System.out.println(person.getName() + ":成年人");} else {System.out.println(person.getName() + ":未成年人");}}
}
class Person {
private String name;private Integer age;public Person(String name, Integer age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}
Predicate
说明:
接口定义:
使用:
Predicate
说明:
接口定义:
使用:
Predicate
说明:
接口定义:
使用:
Predicate
说明:
接口定义:
使用:
Predicate
说明:
接口定义:
使用:
Predicate
说明:
接口定义:
使用:
Predicate
说明:
接口定义:
使用:
