先看下Function的其中一个应用:
1、如果我们需要一个对象集合的某一个属性的集合,例如:获取User对象中的userName属性。
/**
* @Author river66
* @Date 2020/9/12 8:34
*/
@Data
public class User {
private String userName;
public User(String userName) {
this.userName = userName;
}
}
List<User> users = new ArrayList<>();
users.add(new User("小明"));
users.add(new User("大明"));
users.add(new User("小红"));
一般我们会这样,先List<String> userNames = new ArrayList<>();然后遍历List<User>对象拿到每一个userName属性。
但是,java8之后就不需要这么做了,如下:
List<String> userNames = users.stream().map(User::getUserName).collect(Collectors.toList());
其中,map()函数的参数就是Function类型的。而我们的入参就是getUserName函数,这就和C语言的函数指针很像了&#x