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