public static void cloneObject(Object sourceObj,Object targetObj){		
		Class souceClazz = sourceObj.getClass();
		Class targetClazz = targetObj.getClass();		
		
		for (Class superClass = souceClazz; superClass != Object.class; superClass = superClass.getSuperclass()) {
			for(Field field:superClass.getDeclaredFields()){
				try {
					if(!souceClazz.getName().equals(targetClazz.getName())){
						Field targetFiled = getDeclaredField(targetObj,field.getName());// targetClazz.getField(field.getName());
						forceSetProperty(targetObj,targetFiled,forceGetProperty(sourceObj,field));
					}else{
						forceSetProperty(targetObj,field,forceGetProperty(sourceObj,field));
					}					
				} catch (NoSuchFieldException e) {
					e.printStackTrace();
				}
			}
		}
	}