Ein Hinweis darauf, was bei der Verwendung von [Apache Commons BeanUtils] passiert ist (http://commons.apache.org/proper/commons-beanutils/)
Bean.java
public class Bean {
private Timestamp timestamp;
public Timestamp getTimestamp() {
return timestamp;
}
public void setTimestamp(Timestamp timestamp) {
this.timestamp = timestamp;
}
}
Main.java
public class Main {
public static void main(String[] args) throws Exception {
Bean bean = new Bean();
// 1.9.Vor 3 Objekt.getClass()Wird als Accessor interpretiert"class"Ist in der Eigenschaftsliste enthalten.
BeanUtils.describe(bean);
// => 1.9.Vor 3:{class=class test.Bean, timestamp=null}
// 1.9.4:{timestamp=null}
// ※ PropertyUtils.describe(bean)Wird das gleiche Ergebnis geben.
// 1.9.Vor 3 ist das Verhalten beim Festlegen unzugänglicher Eigenschaften mit setProperty und copyProperty unterschiedlich.
BeanUtils.setProperty(bean, "class", Bean.class);
// =>Es wird nichts getan.
BeanUtils.copyProperty(bean, "class", Bean.class);
// => 1.9.Vor 3: Java.lang.reflect.InvocationTargetException:Klasse kann nicht festgelegt werden.
// 1.9.4: Es wird nichts ausgeführt.(BEANUTILS-Hat sich das Verhalten aufgrund des Einflusses von 520 geändert? )
//Das Verhalten beim Versuch, für einige Arten von Eigenschaften Null zu setzen, unterscheidet sich zwischen setProperty und copyProperty.
BeanUtils.setProperty(bean, "timestamp", null);
// => org.apache.commons.beanutils.ConversionException: No value specified for 'java.sql.Timestamp'Tritt ein.
BeanUtils.copyProperty(bean, "timestamp", null);
// => 1.8.Vor 3: Eine ConversionException ist wie copyProperty aufgetreten.
// 1.9.Nach 0: Es wird nichts ausgeführt.(BEANUTILS-In 454 behoben)
}
}