通过反射自动封装 只能适用于addXxxEqualTo
public Object packingExample(Object entity, Object entityExampleCriteria) {
try {
// 得到类对象
Class<?> userCla = entity.getClass();
/* 得到类中的所有属性集合 */
Field[] fs = userCla.getDeclaredFields();
Class<?> criteria = entityExampleCriteria.getClass();
Object CriteriaTemp = criteria.newInstance();
for (int i = 0; i < fs.length; i++) {
String fieldName = "and"
+ fs[i].getName().substring(0, 1).toUpperCase()
+ fs[i].getName().substring(1) + "EqualTo";
String fieldType = fs[i].getType().getName();
fs[i].setAccessible(true);
Method method = criteria.getMethod(fieldName,
Class.forName(fieldType));
if (fs[i].get(entity) != null) {
method.invoke(CriteriaTemp, fs[i].get(entity));
}
}
return CriteriaTemp;
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return null;
}