时间:2021-05-19
我就废话不多说了,大家还是直接看代码吧~
package test.refect; public class Student { // 姓名 private String name; // 年龄 private String age; // 住址 private String address; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } @Override public String toString() { return "Student [name=" + name + ", age=" + age + ", address=" + address + "]"; } public void sayHello(Book book){ System.out.println(book.getName()); }}package test.refect; public class Book { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }package test.refect; import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import com.alibaba.fastjson.JSONObject; public class ExecuteWithFastJson { public static <T> void main(String[] args) { // Student str --> Student 主类 String str = "test.refect.Student"; Class<?> clazz = null; try { clazz = Class.forName(str); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } // Book实体 str --> Book 参数类 String bookStr = "test.refect.Book"; Class<?> bookClazz = null; try { bookClazz = Class.forName(bookStr); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } // json --> Book 将参数类转为JSONOBJECT String bookJson = "{\"name\":\"Java\"}"; // 实例化参数类 T t = (T) JSONObject.parseObject(bookJson, bookClazz); // 将参数类注入到主类 Method method =null; try { method = clazz.getDeclaredMethod("sayHello", bookClazz); } catch (NoSuchMethodException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SecurityException e) { // TODO Auto-generated catch block e.printStackTrace(); } // 执行主类 try { method.invoke(clazz.newInstance(), t); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InvocationTargetException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}补充:使用fastjson 进行jsonObject转实体类对象
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.7</version></dependency>首先引入相关jar包,
假设有一个实体类User
public class User{ private int id; private String name; }然后通过fastJson进行类型转换
public static void main(String[] args){ String userString = "{"id":1,"name","lz"}"; JSONObject userJson = JSONObject.parseObject(userString); User user = JSON.toJavaObject(userJson,User.class); }以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
java反射机制:测试实体类以Human为例/***Project:Day12_for_lxy*Created:Lulu*Date:2016/8/10*/pub
一丶概述文件解析要求,json解析和xml解析,前面文章说过Json转实体类,这里就说说解析XML内容:AndroidStudio解析XML常见的三种方式:DO
最近写一个题目,要求将一组员工实体类转换成xml文件,或将xml文件转换成一组实体类。题目不难,但写完感觉可以利用泛型和反射将任意一个实体类和xml文件进行转换
类转json的基类实现项目地址github地址实现原理使用反射获取类的属性名和属性内容。具体原理可以自己查一下资料对一个类调用getClass().getDec
Java反射机制与动态代理,使得Java更加强大,Spring核心概念IoC、AOP就是通过反射机制与动态代理实现的。1Java反射示例:Useruser=ne