• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于java:反射判断对象所有字段是空及获取对象字段名及字段值

java 搞代码 3年前 (2022-02-19) 61次浏览 已收录 0个评论

阐明:应用反射判断或者获取的对象中值或者字段
示例:
1.获取带某注解的对象字段及属性名称

//注解定义
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface ModifyField {
    /**
 * 字段名称 * @return
 */
 String name() default "";
}


/**
 * 获取对象中所有带@ModifyField注解的字段列表map * @param
 * @return
 */
public static Map<String, String> getAllFieldMap(Class<?> clazz) {
    Map<String, String> map = new HashMap<>();
 if (clazz == null) {
        return map;
 }
    Field[] fields = clazz.getDeclaredFields();
 for (Field field : fields) {
        ModifyField modifyField = fi<b style="color:transparent">来源gao@!dai!ma.com搞$$代^@码网</b>eld.getAnnotation(ModifyField.class);
 if (modifyField != null) {
            map.put(field.getName(), modifyField.name());
 }
    }
    return map;
}

2.查看某对象属性是否全是空

/**
 * 测验对象属性是否全是空 * @param object
 * @return
 */
public static boolean checkAllFieldsIsNull(Object object) {
    if (null == object) {
        return true;
 }
    try {
        for (Field f : object.getClass().getDeclaredFields()) {
            f.setAccessible(true);
 if (f.get(object) != null && StringUtils.isNotBlank(f.get(object).toString())) {
                return false;
 }
        }
    } catch (Exception e) {
        log.error("checkAllFieldsIsNull err {}",e);
 }
    return true;
}

3.获取某对象中的所有有值的字段及值内容

/**
 * 获取对象中的所有有值的字段及值内容 * @param obj
 * @return
 */
public static Map<String, Object> getAllFieldNotNull(Object obj) {
    Map<String, Object> map = new HashMap<>();
 if (obj == null) {
        return map;
 }
    try {
        Field[] fields = obj.getClass().getDeclaredFields();
 for (Field field : fields) {
            field.setAccessible(true);
 Object value = field.get(obj);
 if (value != null) {
                map.put(field.getName(), value);
 }
        }
    } catch (IllegalAccessException e) {
        log.error("getAllFieldNotNull err {}",e);
 }
    return map;
}

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于java:反射判断对象所有字段是空及获取对象字段名及字段值
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址