当前位置: 首页 > news >正文

网站开发工程师薪资东莞网站推广运营公司

网站开发工程师薪资,东莞网站推广运营公司,小白 wordpress,专业网站建设哪家权威反射就是从类里拿东西 有的人可能会想为什么不能用io流,从上往下一行一行的读也能获取类中的信息,为什么要用反射呢? 假如我们io流,从左到右一行一行的读取数据,如果碰到局部变量和成员变量同名,怎么区分&a…

反射就是从类里拿东西

 有的人可能会想为什么不能用io流,从上往下一行一行的读也能获取类中的信息,为什么要用反射呢?

假如我们io流,从左到右一行一行的读取数据,如果碰到局部变量和成员变量同名,怎么区分,还得结合上下文,比较麻烦

但用反射可以一步一步的扒出所有信息

 

!!!思考:怎样用反射扒出所有信息,它是通过什么手段实现

回顾: 当我们编写好以.java为扩展名的文件后,如果它能被运行(比如其中包含main函数),那么我们能通过点击IDEA里的运行按钮运行这个.java文件。

IDEA向我们隐藏了一个关键步骤:它首先是把.java文件编译成扩展名是.class的字节码文件,随后,Java的虚拟机(JVM)在当前的操作系统上(比如window 10)上运行这个.class文件。

:通过某些工具,我们能打开.class文件,并也能看到其中包含的属性和方法,但我们不能直接针对.class文件编程,我们得使用ClassC是大写)这个类(规则)。当一个类或接口被装入到Java虚拟机

JVM)时便会产生一个与和它相关联的java.lang.Class对象,我们就可以通过这个产生class对象来访问和使用目标类的属性和方法,而反射的作用就是如此

所以要实现反射

先获去class对象A

通过class对象的方法、获取构造方法的对象、使用构造方法对象的方法得到它的各种信息,此外通过获取的构造方法还可以创建对象

通过class对象的方法、获取成员变量的对象、使用成员变量对象的方法得到它的各种信息

通过class对象的方法、获取成员方法的对象、使用成员方法对象的方法得到它的各种信息,此外还可以运行方法

获取class字节码文件的对象

 

获取构造方法的对象(对象属于 Constructor 类)

 

获取单个构造方法,注意有参构造在获取的时候要写对应的参数形式(数据类型 .class , 获取非 public 的构造方法注意单词里要有 Declared

 

 1对应public

获取成员变量的对象(对象属于Field类)

 获取成员方法的对象(对象属于Method类)

    //一.获取class字节码文件的对象Class aClass = Class.forName("java_3gao.com.hz.test.Student");//二.①获取构造方法的对象(这里举例获取private Student(String name, int age) 构造方法)//单个构造方法的对象Constructor constructor = aClass.getDeclaredConstructor(String.class,int.class);//②使用获取的构造方法得到它的各种信息System.out.println(constructor.getModifiers());//返回修饰符对应的数字:1对应public,2对应privateSystem.out.println(constructor.getParameterCount());//返回方法的参数个数//③通过获取的构造方法来创建对象// setAccessible(true)是取消java修饰符检查,即构造方法虽然是private也能在这里创建对象)constructor.setAccessible(true);Student s1 = (Student)constructor.newInstance("王五", 16);System.out.println(s1.toString());//三.①获取成员变量的对象//单个成员变量的对象Field field = aClass.getDeclaredField("name");//②使用获取的构造方法得到它的各种信息System.out.println(field.getModifiers());//返回修饰符对应的数字:1对应public,2对应privateSystem.out.println(field.getType());//返回变量数据类型//③获取成员变量的值(注意变量为私有,所以还要用 setAccessible(true)取消检查)Student s2 = new Student("小王");field.setAccessible(true);System.out.println(field.get(s2));//四.获取成员方法的对象//①获取单个成员方法的对象Method method = aClass.getMethod("toString");//②使用获取的成员变量对象得到它的各种信息System.out.println(method.getModifiers());//返回修饰符对应的数字:1对应public,2对应privateSystem.out.println(method.getParameterCount());//返回参数个数//③方法运行(方法的调用者,还有传参invoke(Object obj, Object... args)第一个参数的方法的调用者是谁,第二个是传的参数,这个方法无参所以不传)method.setAccessible(true);String result= (String) method.invoke(s1);System.out.println(result);

http://www.zhtcad.com/news/435.html

相关文章:

  • 网站建设需求表怎么看百度指数
  • 免费的行情网站app软件推荐黑帽seo
  • 砀山做网站的公司百度权重4网站值多少钱
  • 可以找题目做的网站重庆网站seo公司
  • 网站备案的要求搜索引擎优化seo培训
  • 品牌设计包装seo按天计费系统
  • 怎么创建网站相册网站模板价格
  • 广东省住房和城乡建设部网站网站搜索排名优化价格
  • 做微商网站发帖免费教程外贸网站建设优化推广
  • 利用bootstrap如何做响应式网站淘宝付费推广有几种方式
  • 最好的设计师平台网站seo推广什么意思
  • iis网站下载网络营销的概念与含义
  • dramwaver做网站优化网站排名如何
  • 泉州手机网站建设百度如何推广产品
  • 自建网站怎么做优化郑州网络seo公司
  • 泳衣服饰东莞网站建设网站关键词优化软件
  • 如何做衣服销售网站南京高端品牌网站建设
  • 常宁市建设局网站湖南seo优化排名
  • 企业网站代码模板百度云搜索引擎入口官方
  • 做网站前台有什么要求什么叫优化
  • 做b2b网站管理系统手机网页链接制作
  • wordpress-erphpdown百度seo引流
  • 外贸b2c商城网站建设网站建设企业咨询
  • 小型网站建设实训教程互联网推广是什么
  • 贵阳做网站方舟网络军事新闻今日最新消息
  • 无锡集团网站建设找客户的软件有哪些
  • 建设银行网站用户北京十大营销策划公司
  • 天津自动网站建设调试零售客户电商网站
  • 申请域名后怎么做网站现在有哪些免费推广平台
  • 免费做企业推广的网站国外免费源码共享网站