Java中如何获取泛型的某个字段的值

1、情景回顾

某方法中传了一个Object 类型的实体类,我们如何在该方法中获取user的id的值?

Java中如何获取泛型的某个字段的值_第1张图片

方法一

使用Java的反射原理

 Field idField = obj.getClass().getDeclaredField("id");
 idField.setAccessible(true);
 String id1 = (String) idField.get(obj);

方法二

使用JSON对象的转换

 String str = JSON.toJSONString(obj);
 JSONObject jsonObject = JSON.parseObject(str);
 String id2 = jsonObject.getString("id");

Map转实体

Map<String, Object> authorMap = new HashMap<>();
     authorMap.put("id", 10L);
     authorMap.put("name", "蜡笔小新");
     authorMap.put("category", "分类");
     authorMap.put("score", 90);
     authorMap.put("intro", "简介");
     Book book = JSON.parseObject(JSON.toJSONString(authorMap), Book.class);
     System.out.println(book);

实体转Map

Book book1 = new Book();
book1.setId(1l);
book1.setName("风间");
book1.setCategory("分类");
book1.setIntro("简介");
book1.setScore(100);
Map map = JSON.parseObject(JSON.toJSONString(book1), Map.class);
System.out.println(map);

引入依赖

<dependency>
   <groupId>com.alibabagroupId>
    <artifactId>fastjsonartifactId>
    <version>1.2.54version>
dependency>

你可能感兴趣的:(java,jvm,开发语言)