1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > java获取对象属性名称与属性值

java获取对象属性名称与属性值

时间:2021-02-24 17:38:46

相关推荐

java获取对象属性名称与属性值

1、创建工具类

package com.base.reflect;import mons.lang3.reflect.FieldUtils;import java.lang.reflect.Field;import java.util.HashMap;import java.util.Map;import java.util.Set;//@Slf4jpublic class BeansFieldUtils {public static Map<String, Object> getObjectValue(Object object, Set<String> set) {Map<String, Object> map = new HashMap<>();Class<?> clz = object.getClass();Field[] fields = clz.getDeclaredFields();try {for (Field field : fields) {if (!set.contains(field.getName())) {continue;}Object val = FieldUtils.readField(field, object, true);map.put(field.getName(), val);}} catch (Exception e) {// log.error("获取属性异常:{}", e);}return map;}public static Map<String, Object> getObjectValue(Object object) {Map<String, Object> map = new HashMap<>();Class<?> clz = object.getClass();Field[] fields = clz.getDeclaredFields();try {for (Field field : fields) {Object val = FieldUtils.readField(field, object, true);map.put(field.getName(), val);}} catch (Exception e) {// log.error("获取属性异常:{}", e);}return map;}public static void main(String[] args) {UserInfo user = new UserInfo();Student student = new Student();Map userMap = getObjectValue(user);Map studentMap = getObjectValue(student);System.out.print("user:");userMap.forEach((key, value) -> {System.out.print(key + "=" + value + ";");});System.out.println();System.out.print("student:");studentMap.forEach((key, value) -> {System.out.print(key + "=" + value + ";");});System.out.println();}}

2、Student类

package com.base.reflect;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;@Data@AllArgsConstructor@NoArgsConstructorpublic class Student {private String name = "张明";private Integer age = 15;private Integer height = 181;}

3、UserInfo类

package com.base.reflect;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;@Data@AllArgsConstructor@NoArgsConstructorpublic class UserInfo {private String name = "张三 ";private String gender = "男";private Integer age = 20;}

4、打印输出

user:gender=男;name=张三 ;age=20;

student:name=张明;age=15;height=181;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。