Давайте предположим, что у нас есть очень простой класс:
public class User {
private Long id;
private String name;
public void setId(Long id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
}
Я делаю простой класс связывания для заполнения пользователя и хотел бы сообщить о необходимых свойствах.
UserBinder binder = new UserBinder(user)
.requires(User::setId)
.requires(User::setName);
Вышеуказанное указывает на то, что оба свойства являются обязательными.Конечно, я мог бы передать значения "id"
и "name"
вместо ссылок на методы.Но кажется, что передача установщика очень уместна, так как этот установщик должен вызываться внутри связывателя.
Следующее прекрасно работает:
public void requires(BiConsumer<User, Long> r) // for User::setId;
public void requires(BiConsumer<User, String> r) // for User::setName;
Но следующее не получается:
public void requires(BiConsumer<User, ?> r)
Существует ли тип, который будет содержать все возможные ссылки на установщики класса java независимо от устанавливаемого типа?