Java判斷一個類里是否存在某個屬性


本文章向大家介紹Java判斷一個類里是否存在某個屬性,主要包括Java判斷一個類里是否存在某個屬性使用實例、應用技巧、基本知識點總結和需要注意事項,具有一定的參考價值,需要的朋友可以參考一下。

 

Java判斷一個類里是否存在某個屬性

測試pojo類,比方我有個User類

@Getter @Setter public class User { private Long id; private String name; private Integer age; private String email; }

我現在判斷User是否存在某個屬性

  1. 方式一、按照常理來說第一種辦法肯定是通過反射拿到這個類的所有屬性,循環遍歷再去一一比較,這種辦法是可行的,但是感覺這種方式不是太好。
/** * 判斷你一個類是否存在某個屬性(字段) * * @param fieldName 字段 * @param obj 類對象 * @return true:存在,false:不存在, null:參數不合法 */ public static Boolean isExistFieldName(String fieldName, Object obj) throws NoSuchFieldException { if (obj == null || StringUtils.isEmpty(fieldName)) { return null; } //獲取這個類的所有屬性 Field[] fields = obj.getClass().getDeclaredFields(); boolean flag = false; //循環遍歷所有的fields for (int i = 0; i < fields.length; i++) { if (fields[i].getName().equals(fieldName)) { flag = true; break; } } return flag; }
  1. 方式二、通過上網看到有些朋友說把java對象轉成 JSONObject,然后使用JSONObject的方法來解決,我感覺挺好,就試試。
/** * 判斷你一個類是否存在某個屬性(字段) * * @param field 字段 * @param obj 類對象 * @return true:存在,false:不存在, null:參數不合法 */ public static Boolean isExistField(String field, Object obj) { if (obj == null || StringUtils.isEmpty(field)) { return null; } Object o = JSON.toJSON(obj); JSONObject jsonObj = new JSONObject(); if (o instanceof JSONObject) { jsonObj = (JSONObject) o; } return jsonObj.containsKey(field); }

測試

public static void main(String[] args) throws NoSuchFieldException { String field = "email"; User user = new User(); System.out.println("【方式一】:" + isExistFieldName(field, user)); System.out.println("【方式二】:" + isExistField(field, user)); } //結果 field=email 【方式一】:true 【方式二】:true //結果 field=e-mail 【方式一】:false 【方式二】:false

如果上面方法有啥問題,歡迎批評指教!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM