Javadoc для метода getPropertyType
класса PropertyDescriptor
указывает:
Результат может быть "нулевым", если это индексированное свойство, которое неподдержка неиндексированного доступа.
Индексированные свойства - это те, которые поддерживаются массивом значений.В дополнение к стандартным методам доступа JavaBean индексированные свойства могут также иметь методы для получения / установки отдельных элементов в массиве путем указания индекса.Поэтому JavaBean может иметь индексированные геттеры и сеттеры:
public PropertyElement getPropertyName(int index)
public void setPropertyName(int index, PropertyElement element)
в дополнение к стандартным геттерам и сеттерам для неиндексированного доступа:
public PropertyElement[] getPropertyName()
public void setPropertyName(PropertyElement element[])
В соответствии с описанием Javadoc,если вы опустите неиндексированные средства доступа, вы можете получить возвращаемое значение null
для типа свойства дескриптора свойства.
Итак, если у вас есть JavaBean следующего разнообразия, вы можете получитьВозвращаемое значение NULL:
class ExampleBean
{
ExampleBean()
{
this.elements = new String[10];
}
private String[] elements;
// standard getters and setters for non-indexed access. Comment the lines in the double curly brackets, to have getPropertyType return null.
// {{
public String[] getElements()
{
return elements;
}
public void setElements(String[] elements)
{
this.elements = elements;
}
// }}
// indexed getters and setters
public String getElements(int index) {
return this.elements[index];
}
public void setElements(int index, String[] elements)
{
this.elements[index] = elements;
}
}
Обратите внимание, что хотя вы можете реализовать только индексированные методы доступа к свойствам, делать это не рекомендуется, так как стандартные методы доступа используются для чтения и записи значений, если вам случитсяиспользуйте getReadMethod
и getWriteMethod
методы PropertyDescriptor
.