[JAVA] Apache Commons BeanUtils passen Punkt

Ein Hinweis darauf, was bei der Verwendung von [Apache Commons BeanUtils] passiert ist (http://commons.apache.org/proper/commons-beanutils/)

Bestätigte Version
Verifizierungs-Schlüssel

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)
	}
}
Referenz

Recommended Posts

Apache Commons BeanUtils passen Punkt
Apache POI Addictive Point List