礼县住房和城乡建设局网站如何查询公司名称是否被注册
礼县住房和城乡建设局网站,如何查询公司名称是否被注册,网站阵地建设管理办法,餐饮美食网站源码反射详解 反射什么是反射#xff1f;常见操作反射中常用类1.Class类获取Class对象的三张方式类名通过forName#xff08;#xff09;方法通过对象 2.Constructor类获取Constructor构造方法的方式执行Constructor构造方法的方式 3.Field类获取Field成员变量的方式获取所有成员… 反射详解 反射什么是反射常见操作反射中常用类1.Class类获取Class对象的三张方式类名通过forName方法通过对象 2.Constructor类获取Constructor构造方法的方式执行Constructor构造方法的方式 3.Field类获取Field成员变量的方式获取所有成员变量获取指定成员变量 使用Field成员变量的方式 4.Method类获取Method方法的方式执行Method方法的方式 其他 反射
什么是反射
反射是Java语法的一种高级特性在“运行期间”对Java的类型信息进行检查、操作处理。
例如加载JDBC驱动类、MyBatis动态处理resultType、Spring根据配置信息创建Bean对象等使用场景。
常见操作
获取Class类型信息执行构造方法创建对象调用实例方法通过成员变量保存值和获取值
反射中常用类
1.Class类
Class对象用于保存一个类的类型信息它是反射的入口操作。
获取Class对象的三张方式
类名
Class bookClass Book.class;通过forName方法
Class cls2 Class.forName(com.apesource.Demo.Book);通过对象
Class cls3 new Book().getClass();2.Constructor类
代表一个类中的构造方法构造器用于创建“目标”对象
获取Constructor构造方法的方式
获取无参构造方法 Class对象.getConstructor()获取有参构造方法 Class对象.getConstructor(Class…)
//获取无参构造方法
Constructor constr1 cls2.getConstructor();
//获取有参构造方法
Constructor constr2 cls2.getConstructor(String.class,String.class,double.class,int.class);执行Constructor构造方法的方式
执行无参构造方法 Constructor对象.newInstance()执行有参构造方法 Constructor对象.newInstance(值…)
//执行无参构造方法
Object obj2 constr1.newInstance();
//执行有参构造方法
Object obj3 constr2.newInstance(西游,吴承恩,120.5,500);3.Field类
代表一个类中的成员变量(字段)用于为“目标对象”保存值和获取值
获取Field成员变量的方式
获取所有成员变量
public修饰的成员变量 Class对象.getFields()public\private修饰的成员变量 Class对象.getDeclaredField()
Field[] fields cl.getFields();field.setAccessible(true);
Field[] fields cl.getDeclaredFields();获取指定成员变量 public修饰的成员变量 Class对象.getFields(成员变量名称) public\private修饰的成员变量 Class对象.getDeclaredField(成员变量名称) Field field cl.getField(fieldName);field.setAccessible(true);
Field field cl.getDeclaredField(fieldName);使用Field成员变量的方式
Field对象.setXXX(目标对象值)
//通过成员变量赋值
field.setAccessible(true);
field.set(obj,葫芦娃);4.Method类
代表一个类中的方法用于调用执行该方法
获取Method方法的方式
Class对象.getMethod()Class对象.getMethods()
//获取该类的指定方法
Method method cl.getMethod(methodName, String.class);//获取该类的方法
Method[] methods cls.getMethods();for(Method method : methods) {System.out.println(method); System.out.println(修饰符method.getModifiers());System.out.println(返回值类型method.getReturnType());System.out.println(参数列表); for(Parameter c : method.getParameters()){ System.out.print(c);}System.out.println();System.out.println(方法名method.getName()); System.out.println();
}执行Method方法的方式
Method对象.invoke(目标对象方法参数)
//执行
Object invoke method.invoke(obj, UUID.randomUUID().toString());其他
//获取该类的接口信息
Class[] interfaces cls.getInterfaces();//获取该类的包信息
Package package1 cls.getPackage();//获取该类的父类信息
Class superclass cls.getSuperclass();
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/89266.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!