1

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

PropertyDescriptor descriptor = property(on(Foo.class).getBar()); 

assertThat(descriptor.getName()).isEqualTo("bar") 

Чтобы иметь такой удобный метод реализован правильно требует ИМХО тихий много работы. В обработке конечных классов и тому подобные может быть чрезвычайно сложными (см Mockito, EasyMock и т.д.)

+0

Когда речь идет о свойствах и отражении на Java фасоли, первое дело который приходит мне на ум - это [Apache Commons BeanUtils] (https://commons.apache.org/proper/commons-beanutils/) lib. Но я не знаю, можете ли вы решить свою точную проблему, используя ее. –

ответ

1

Вы можете использовать QueryDSL's aliases как:

import static com.querydsl.core.alias.Alias.* 

Foo foo = alias(Foo.class, "foo"); 
assertThat($(foo.getBar().getBaz()).getMetaData().getName()).isEqualTo("foo.bar.baz");