Я получение информации о классе черезПочему PropertyDescriptor возвращает имя свойства с верхним регистром в качестве первого символа?
Introspector.getBeanInfo(this.getClass()).getPropertyDescriptors()
затем получить имя свойства, вызывая propery[i].getName()
.
Все в порядке, если в собственности нет однобуквенной части. Например, если свойство имеет имя personAddress
(между тем его получатель/сеттер ->getPersonAddress()
, setPersonAddress(String personAddress)
), это нормально, getName()
возвращает personAddress
.
Но если свойство имеет имя rPersonId
(getRPersonId()
, setRPersonId(Long rPersonId)
), то getName()
возвращается «RPersonId», то есть первая буква была заглавной! Зачем?
По https://docs.oracle.com/javase/7/docs/api/java/beans/FeatureDescriptor.html:
public String getName()
-> Получает программное имя этой функции.
Так почему же оно возвращает имя, как-то связанное с его именем получателя или сеттера вместо реального имени свойства?
Ответ не объясняет, почему первый символ не был в нижнем регистре. – Tunaki
Спасибо за ответ! –
Благодарим за отзыв! Эта ссылка https://docs.oracle.com/javase/7/docs/api/java/beans/PropertyDescriptor.html говорит, что PropertyDescriptor имеет несколько конструкторов. Какой из них вызывается вызовом getBeanInfo (this.getClass()). GetPropertyDescriptors()? Он говорит только, что если я сам создам PropertyDescriptor, тогда я должен предоставить пару getter/setter –