Вы не следуете спецификации JavaBeans, поэтому не ожидайте, что она будет обрабатывать ваши произвольные имена.
JavaBeans говорит, что если он находит пару аксессоров, void setX(Y)
и Y getX()
, X
идентифицируется как свойство чтения-записи типа Y
. Специфика типа Y
в обоих случаях одинакова. (Обозначение принадлежит мне, я просто пытаюсь проиллюстрировать конкретным образом.) Если отсутствует метод getX()
, X
является свойством только для записи. Если setX(Y)
отсутствует, X
- свойство только для чтения.
Свойства, в которых тип boolean
имеют специальную очистку. Если есть метод boolean isX()
, он будет использоваться для доступа к доступу к этому свойству. Это нормально, если есть метод boolean getX()
, но он не будет использоваться.
В вашем коде setSha1()
игнорируется по умолчанию, поскольку он называется set
, но не принимает никаких аргументов.
Однако вы указали типы возвращаемых типов isSha1()
и getSha1()
, поэтому инспектор не может определить, каков должен быть тип свойства sha1. Поведение здесь не определяется спецификацией. Вероятно, вы можете исправить это, предоставив явные дескрипторы bean-компонентов, но никто этого не делает.
Итак, результат такой, не делайте этого. Следуйте соглашениям, указанным в спецификации.
Я бы предположил/надеюсь, что с учетом isSha1, getSha1 и setSha1, с последним 2 соглашением, он был бы достаточно умным, чтобы справиться с этим делом, но, похоже, не так ... – rogerdpack