Метод Перехват для получения имени свойства

Я ищу служебный класс или библиотеку, которая дает мне имя свойства безопасным для типов способом. Я имею в виду нечто похожее на следующее:

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");
Другие вопросы по тегам