Преобразовать имя метода в имя bean-компонента во время выполнения?

Я много работаю с BeanBinding в моем текущем проекте, поэтому у меня есть код, который выглядит как ...

TypeA objA;
TypeB objB;
Bindings.createAutoBinding(UpdateStrategy.READ, 
    objA,   BeanProperty.create("X"),
    objB,   BeanProperty.create("X"))
    .bind();

Где objA ] и objB - это экземпляры классов, которые имеют метод setX () . Проблема заключается в том, что если я реорганизую setX в setY тогда мне нужно найти эти строковые имена свойств. Я понимаю, что могу создавать статические конечные строки для имени свойства, но если я смогу заставить компилятор выполнять эту работу за меня, тем лучше.

В идеале, то, что я хотел бы уметь сделать это ...

TypeA obja;
TypeB objB;
Bindings.createAutoBinding(UpdateStrategy.READ, 
    objA,   BeanProperty.create( Magic.returnBeanName(TypeA.class).getX() ),
    objB,   BeanProperty.create( Magic.returnBeanName(TypeB.class).setX() )
    .bind();

Казалось бы, это возможно с помощью некоторого синтеза кода и / или аспектов.

6
задан Erik Sjölund 27 February 2013 в 19:19
поделиться