A null value is often a valid argument for a setter method, however when invoking POJO methods reflectively as XUI does this is a problem as null presents no type information. In a polymorphic environment a method may be overloaded and may have several versions with varying method signatures and therefore it can be difficult to determine the appropriate method to invoke when a null value is used.
XUI 4.0 extends the existing method invocation to use the return type of the matching getter method if a null has been passed as an argument in order to disambiguate the setter methods.
In most cases this use of the getter return type will be valid, but in some cases where a covariant return type is used or where the return type has been overloaded there may still be problems. However in most cases where POJOs are implemented as Java beans and where the POJOs are designed for use with earlier JDKs this should not be a big issue.
If the use of covariant return types becomes more common we will revisit this issue and adjust the solution.