62,614
社区成员
发帖
与我相关
我的任务
分享
/**
* This method is for copying values from oldObject to newobject
*
* @param newObject
* @param oldObject
*/
public void copyObjects(Object newObject, Object oldObject) {
Method[] newObjectMethods = oldObject.getClass().getDeclaredMethods();
Method getterMethod = null;
Method setterMethod = null;
Object valueToSet = null;
String getterMethodName;
String setterMethodName;
Object values[] = new Object[1];
for (int i = 0; i < newObjectMethods.length; i++) {
getterMethod = newObjectMethods[i];
getterMethodName = getterMethod.getName();
if (getterMethodName.indexOf("get") != -1
&& !Modifier.isStatic(getterMethod.getModifiers())
&& !Modifier.isFinal(getterMethod.getModifiers())
&& !Modifier.isProtected(getterMethod.getModifiers())
&& !Modifier.isPrivate(getterMethod.getModifiers())) {
getterMethod.setAccessible(true);
setterMethodName = getterMethodName.replaceFirst("get", "set");
setterMethod = getSetterMethodIfAvailable(newObject, setterMethodName);
if (setterMethod != null) {
try {
Class Parametertype[] = setterMethod.getParameterTypes();
valueToSet = getterMethod.invoke(oldObject, null); //这里的警告
if (valueToSet != null) {
valueToSet = convert(valueToSet, Parametertype[0]);
values[0] = valueToSet;
setterMethod.invoke(newObject, values);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
valueToSet = getterMethod.invoke(oldObject); //这里的警告