Конечно, вы можете, но для этого каждому сеттеру нужно будет возвращать this
, что не так уж хорошо для сеттеров, так как фреймворки больше не смогут их найти. Например, стандарт java.beans.Introspector
игнорирует не-1003 * сеттеры:
public class Chain {
private int i;
public int getI() {
return i;
}
public Chain setI(int i) {
this.i = i;
return this;
}
public static void main(String[] args) throws IntrospectionException {
PropertyDescriptor[] propertyDescriptors = Introspector.getBeanInfo(Chain.class).getPropertyDescriptors();
for (PropertyDescriptor propertyDescriptor : propertyDescriptors) {
System.out.println("property = " + propertyDescriptor.getDisplayName());
System.out.println("read = " + propertyDescriptor.getReadMethod());
System.out.println("write = " + propertyDescriptor.getWriteMethod());
}
}
}
печать
property = class
read = public final native java.lang.Class java.lang.Object.getClass()
write = null
property = i
read = public int org.acm.afilippov.Chain.getI()
write = null
Учитывая, что Apache BeanUtils использует его, есть вероятность, что многие платформы Apache решат, что свойство доступно только для чтения.