Java實體類反射
阿新 • • 發佈:2022-05-06
public static <T> T reflection(T entity){ Class<? extends Object> entityClass = entity.getClass(); //getDeclaredFields():獲得某個類的所有宣告的欄位,即包括public、private和proteced,但是不包括父類的申明欄位。 Field[] fields = tClass.getDeclaredFields(); for (Field field : fields) { try { //取消訪問檢查,提高反射的效率。 field.setAccessible(true); //獲取欄位名 String fieldName = field.getName(); //獲取屬性型別 String type = field.getGenericType().toString(); String value = "設定的屬性值"; field.set(entity, value); //根據相應型別賦值 switch (type) { case "class java.lang.String": field.set(entity, value); break; case "class java.lang.Integer": field.set(entity, Integer.parseInt(value)); break; case "class java.util.Date": SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); field.set(entity, sdf.parse(value)); break; default: //其他型別跳過 continue; } } catch (Exception e) { e.toString()); } } return entity; }