В C # у нас есть возможность указать свойство объекта с помощью селекторов свойств (например, при использовании LINQ), например так:
var usernames = customers.Where(x => x.Age > 20).Select(x => x.Username);
Здесь мы сначала выбираем свойство Age
для выполнениясравните, а затем укажите свойство Username
в предложении Select(...)
.
В настоящее время я пытаюсь воспроизвести эту функцию, используя лямбда-выражения в Java, чтобы пользователи моего кода могли указать, какое свойство следует использовать длянекоторые действия позже.Окончательный результат должен выглядеть примерно так:
public class Builder<T> {
// ...
private Field field;
Builder<T> forField(SomeFunctionalInterface s) {
this.field = s.evaluate();
return this;
}
// ...
}
Спасибо за ваши усилия.