Я бы хотел связать два свойства разных типов друг с другом в двух направлениях.
У меня есть интерфейс:
interface Gateway<F, T> {
T to(F item);
F from(T item);
}
, что позволяет мне преобразовывать объект одного типа в объект другого типа.
Оптимально, я бы имел функцию:
void bindBidirectional(Property<F> first, Gateway<F, T> converter, Property<T> second) {
...
}
, что позволило бы мне легко двунаправленно связывать два свойства, если у меня есть объект, который может отображать значения одного типа в значения другого и обратно.
Как бы я реализовал привязку следующим образом?
Примечание : Уже существует удобных методов для этого вида связывания , пока один из типов Property
равен String
. Мне нужен более общий метод, похожий на этот, который позволит мне конвертировать любые два типа.