Почему следует использовать Consumer и Producer вместо обычного геттера / сеттера? - PullRequest
0 голосов
/ 28 июня 2019

Есть ли смысл заменять что-то вроде этого

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 Ответ

2 голосов
/ 28 июня 2019

Я действительно не вижу преимущества функциональной версии здесь.Если вы ищете способ передать геттеры и сеттеры, вы можете просто использовать ссылки на функции.Например, предположим, что Entry содержит методы getUser и setUser:

Entry entry = ...;
doSomethingWith(entry::getUser);
writeTo(entry::setUser);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...