Метод Перехват для получения имени свойства
Я ищу служебный класс или библиотеку, которая дает мне имя свойства безопасным для типов способом. Я имею в виду нечто похожее на следующее:
PropertyDescriptor descriptor = property(on(Foo.class).getBar());
assertThat(descriptor.getName()).isEqualTo("bar")
Для того, чтобы такой удобный метод был реализован должным образом, ИМХО требует много работы. Поскольку обработка окончательных классов и тому подобное может быть чрезвычайно сложной (см. Mockito, easymock и т. Д.)
1 ответ
Вы можете использовать псевдонимы QueryDSL как:
import static com.querydsl.core.alias.Alias.*
Foo foo = alias(Foo.class, "foo");
assertThat($(foo.getBar().getBaz()).getMetaData().getName()).isEqualTo("foo.bar.baz");