更新時間:2022-09-28 15:52:36 來源:動力節點 瀏覽2281次
本文章向大家介紹Java反射取值賦值,主要包括Java反射取值賦值使用實例、應用技巧、基本知識點總結和需要注意事項,具有一定的參考價值,需要的朋友可以參考一下。
項目需求:需要對獲取的數據每個字段值校驗合法性,故想到用反射實現
/**
* 字段值校驗
*
* @param r 需要校驗的實體類
* @param properties 自定義需要校驗的屬性
* @return
*/
private boolean verifyFields(RelatedRelation r, String[] properties) {
boolean flag = true;
Field[] fields = r.getClass().getDeclaredFields();
try {
// 去空格后,重新賦值
for (Field field : fields) {
field.setAccessible(true);
Object value = field.get(r);
String typeName = field.getType().getName();
if (StringUtils.equals(typeName, String.class.getTypeName()) && ObjectUtils.isNotEmpty(value)) {
String name = field.getName();
String v = ((String) value).trim();
Field f = r.getClass().getDeclaredField(name);
f.setAccessible(true);
f.set(r, v);
}
}
// 判斷屬性是否為空或null
for (String property : properties) {
Field field = r.getClass().getDeclaredField(property);
field.setAccessible(true);
Object value = field.get(r);
if (ObjectUtils.isEmpty(value)) {
field.set(r, "不能為空");
flag = false;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習