首页 > 编程知识 正文

Java反射的应用,java反射的实现方式

时间:2023-05-04 11:00:36 阅读:22952 作者:4419

JVA反射机制及其相关APP应用:能够将任意JSON对象映射到pojo类的实例,并支持参数化的本文主要在企业开发中有业务,客户发送的JSON数据字段均为中文,我我采用的方案是Java反射机制,通过Map类进行字段感知设置; 代码使用的是Gson的Gson对象。

文章目录Java反射机制及其相关应用:将任意JSON对象映射到一个pojo类实例,可以应用参数感知动态语言实现方法

动态语言

首先,让我们来理解动态语言的概念。 在运行程序时,允许改变程序的结构和变量的类型。 这种语言称为动态语言。 虽然Java不是动态语言,但它提供了一种称为Reflection的机制。 通过Reflection,Java程序可以在编译时加载完全未知的对象,并检索其结构以创建对象实体。 这种能力被称为introspection,即内省。

实现方法Class类:表示位于java.lang包下的类。 使用类名. Class语法获取:

Class a=String.class; 使用对象的getClass ()方法

String str='aa '; Class? classType1=str.getClass (; Field类:表示类的成员变量。 成员变量也称为类的属性。 Method类:表示类的方法。 构造器类:表示类的构造方法。 Array类:提供动态创建数组和访问数组元素的静态方法。 Class类提供了很多引用官方API的方法。 稍后给出下载链接

类Class还允许您动态创建对象实体,以便在程序运行时获取任何类的各种信息,包括方法、类名和包路径。

/* * * @要应用param pojo的pojo类(所有pojo类字段都必须是字符串) * @param compare字段配对(' POJO属性名称' :'JSON对象kkson ) @paramobjson对象) @ @ authorhuangyongxiang * @ description将任何JSON对象映射作为pojo类实例*/publicstatictjsonobjtoton stringcongcopojo JsonObject obj () if ) POJO==null|| compare==null|| obj==null ) ) system.out.println ) JSON obobon 返回空值; } T out=null; try { out=pojo.newInstance (; SetString keys=compare.keySet (; iteratorstringite=keys.iterator (; wile(ite.Hasnext () ) { String key=ite.next; stringJkey=compare.get(key ); stringvalue=obj.get(jkey ).toString ); value=value==null? ' ' : value; stringupkey=key.substring (1(0,1 ).toUpperCase ) ) key.substring ) 1; 字符串集方法=' set ' up key; 方法方法[ ]=POJO.getdeclaredmethods (; for(intj=0; j method.length; j ) if(method[j].getname ).equals ) setmethod ) ) method[j].invoke ) out,value ); 布雷克; }}}catch(exceptione ) { e.printStackTrace ); }返回输出; }上的代码可以使用java反射机制将中文key的json对象直接转换为英语属性的pojo类实例。 map可以设置字段响应规则; 由于用户发送的value值具有很大的随机性,因此将取消类型转换,统一使用字符串类型,并在以后审计类型。

有关与本文相关的源JDK1.8API中文版,请访问下载链接。

可以将中文key的json对象直接转换为英语属性的pojo类实例,map可以设置字段感知规则。

有关与本文相关的源JDK1.8API中文版,请访问下载链接。

3359 download.csdn.net/download/QQ _ 45060540/21602127

或者下载到本人的主页上

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。