为什么要使用消费者和生产者而不是普通的获取器/设置器?

时间:2019-06-28 11:21:37

标签: java

替换这样的东西有什么意义

1。普通版

// 1.1
public getUser(){
    return user;
}

// 1.2
public void setUser(User user) {
    this.user = user;
}

像这样:

2。功能版本

// 2.1
public Supplier<User> getUser = () -> user; 
// 2.2
public Consumer<User> setUser = (user) -> this.user = user; 

使用版本2有什么技术上的好处(例如性能)?

哪个人更喜欢?

1 个答案:

答案 0 :(得分:2)

我真的没有在这里看到功能版本的好处。如果您正在寻找一种传递getter和setter的方法,则可以使用函数引用。例如,假设Entry包含方法getUsersetUser

Entry entry = ...;
doSomethingWith(entry::getUser);
writeTo(entry::setUser);