name | type | description |
---|---|---|
Consumer | Consumer |
接收T对象,不返回值 |
Predicate | Predicate< T > | 接收T对象并返回boolean |
Consumer
说明:
- 消费某个对象
接口定义:
@FunctionalInterface
public 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
- 定义方法
```java
public static void main(String[] args) {
sayHi().accept("Tony");
sayHello().accept("Grace");
}
@NotNull
private static Consumer<String> sayHello() {
return name -> {
String format = MessageFormat.format("hello,{0}", name);
System.out.println(format);
};
}
@NotNull
private static Consumer<String> sayHi() {
return name -> {
String format = MessageFormat.format("hi,{0}", name);
System.out.println(format);
};
}
输出-->
hi,Tony
hello,Grace
- 以接口实现类的方式。判断是否是成年人
```java
public static void main(String[] args) {
List
personList = initPerson(); personList.forEach(new PersonHandle()); }
public static List
// 实现该接口
class PersonHandle implements Consumer
@Override
public 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
说明:
接口定义:
使用: