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

各大网站投稿方式百度应用app

各大网站投稿方式,百度应用app,大良网站建设基本流程,wordpress调用多个标签文章目录 一、初识反射机制1.1 反射机制概述1.2 反射机制概念1.3 Java反射机制提供的功能1.4 反射机制的优点和缺点 二、反射机制相关的 API 一、初识反射机制 1.1 反射机制概述 JAVA 语言是一门静态语言,对象的各种信息在程序运行时便已经确认下来了,内…

文章目录

  • 一、初识反射机制
    • 1.1 反射机制概述
    • 1.2 反射机制概念
    • 1.3 Java反射机制提供的功能
    • 1.4 反射机制的优点和缺点
  • 二、反射机制相关的 API



一、初识反射机制


1.1 反射机制概述

JAVA 语言是一门静态语言,对象的各种信息在程序运行时便已经确认下来了,内部结构是不可变的。所以当程序在运行时,我们是无法获取对象中的信息的,但是Java 语言推出了对应解决办法--反射机制。反射机制可以动态的获取类对象的属性和方法,这便给Java语言添加了一些“灵活性”,使其成为了“准动态语言”。
JAVA 语言是先编译在运行的语言,所以程序中的对象属性在编译期便已经敲定了,不会再发生改变,但是通过反射机制可以实现属性的改变和获取。


1.2 反射机制概念

在这里插入图片描述

JAVA 语言正常想要获取对象一般是通过将类的完整包路径实例化之后获得的。但是通过反射机制的 getClass() 可以通过对象去反向获取类的完整包路径。


1.3 Java反射机制提供的功能

  • 在运行时判断任意一个对象所属的类

  • 在运行时构造任意一个类的对象

  • 在运行时判断任意一个类所具有的成员变量和方法在运行时获取泛型信息

  • 在运行时调用任意一个对象的成员变量和方法

  • 在运行时处理注解

  • 生成动态代理



1.4 反射机制的优点和缺点

  • 优点: 可以实现动态创建对象和编译,体现出很大的灵活性

  • 缺点: 对程序的性能有影响。使用反射基本上是一种解释性操作,相当于给 JVM 去解释一些要求,然后 JVM 通过这个要求去执行相关的操作。这类操作总是慢于直接执行相同的操作。




二、反射机制相关的 API

  • 反射
      动态加载对象。在运行状态中,对于任何一个类,能够获取这个类的所有属性和方法,对于一个对象,能够调用它的的任意一个属性和方法,这种动态获取类的内容和动态调用对象的方法称为反射机制。

  •       通过反射机制相关的API就可以获取任何Java类的包括属性、方法、构造器、修饰符等信息。元素不必在JVM运行时进行确定,反射可以使得它们在运行时动态地进行创建或调用。
          JDK中,主要由以下类来实现Java反射机制,这些类都位于java.lang.reflect包中


  • 反射机制相关的 API

    • Class类:代表一个类

      • 常用方法:

        • public static Class<?> forName(String className) : 通过 Class 直接调用,根据传入的类路径加载并将对应的类初始化

        • public Constructor<?>[] getConstructors(): 获取对象中全部的构造函数,存储进 Constructor[] 并将数组返回

        • public Field[] getDeclaredFields(): 获取对象中全部的变量,存储进 Field[] 并将数组返回

        • public Method[] getDeclaredMethods(): 获取对象中全部的方法,存储进 Method[] 并将数组返回

    • Constructor类:代表类的构造方法

      • 常用方法:

        • public T newInstance(Object … initargs): 搭配 Class 类的 getConstructors(),获取对应的构造方法
    • Field类:代表类的成员变量

    • Method:代表类的方法


  • 反射 API 代码示例

    import java.lang.reflect.Constructor;
    import java.lang.reflect.Field;
    import java.lang.reflect.Method;/*** 反射*/
    public class reflect {//运行时获取已知名称的类或已有对象相关信息,包括类的方法,属性,父类等信息//JDK中,主要由以下类来实现Java反射机制,这些类都位于java.lang.reflect包中int m;public reflect() {System.out.println("无参构造方法");}public reflect(String k) {System.out.println("一个参数构造方法---" + k);}public reflect(String k, Integer v) {System.out.println("两个参数构造方法---" + k + ":" + v);}public void fun1() {System.out.println("无参数成员方法");}public void fun2(String k) {System.out.println("一个参数成员方法---" + k);}public void fun3(String k, Integer v) {System.out.println("两个参数成员方法---" + k + ":" + v);}public static void main(String[] args) throws Exception{//加载并初始化指定的类reflectClass classInfo = Class.forName("com.proxy.reflect");//代表类名是ASystem.out.println("类reflect构造函数如下所示:");Constructor[] constructors = classInfo.getConstructors();for (int i = 0; i < constructors.length; i++) {System.out.println(constructors[i].toString());}//获得类的所有变量System.out.println("\n类reflect变量如下:");Field[] declaredFields = classInfo.getDeclaredFields();for (int i = 0; i < declaredFields.length; i++) {System.out.println(declaredFields[i].toString());}//获得类的所有方法System.out.println("\n类reflect方法如下:");Method[] declaredMethods = classInfo.getDeclaredMethods();for (int i = 0; i < declaredMethods.length; i++) {System.out.println(declaredMethods[i].toString());}//=========================================构造方法===============================//第一种方式//Constructor[] constructors = classInfo.getConstructors();//调用两个参数构造方法constructors[0].newInstance(new Object[]{"Hello",2023});//调用一个参数构造方法constructors[1].newInstance(new Object[]{"Hello"});//调用无参构造方法constructors[2].newInstance();//第二种方式//调用无参构造方法Constructor constructor = classInfo.getConstructor();constructor.newInstance();//调用一个参数构造方法constructor = classInfo.getConstructor(new Class[]{String.class});constructor.newInstance(new Object[]{"Hello"});//调用两个参数构造方法constructor = classInfo.getConstructor(new Class[]{String.class, Integer.class});constructor.newInstance(new Object[]{"Hello", 2023});//=========================================成员方法============================//调用无参构造函数,生成新的实例对象Object obj = classInfo.getConstructor().newInstance();//调用无参成员函数Method method1 = classInfo.getMethod("fun1");//通过实例对象进行方法的实例化method1.invoke(obj);//调用一个参数成员函数Method method2 = classInfo.getMethod("fun2", String.class);method2.invoke(obj, new Object[]{"Hello"});//调用两个参数成员函数Method method3 = classInfo.getMethod("fun3", String.class, Integer.class);method3.invoke(obj, new Object[]{"Hello", 2023});}}
    
  • 执行结果
    在这里插入图片描述


文章转载自:
http://mecometer.bpcf.cn
http://commiseration.bpcf.cn
http://filamentoid.bpcf.cn
http://routine.bpcf.cn
http://blackmail.bpcf.cn
http://bradypepsia.bpcf.cn
http://antigua.bpcf.cn
http://awol.bpcf.cn
http://magnetopause.bpcf.cn
http://horsecar.bpcf.cn
http://tinpot.bpcf.cn
http://carthage.bpcf.cn
http://boondockers.bpcf.cn
http://spurge.bpcf.cn
http://paupiette.bpcf.cn
http://muf.bpcf.cn
http://meanly.bpcf.cn
http://uncharmed.bpcf.cn
http://ropewalker.bpcf.cn
http://frigg.bpcf.cn
http://erupt.bpcf.cn
http://allergist.bpcf.cn
http://postmeridian.bpcf.cn
http://chantey.bpcf.cn
http://advertisement.bpcf.cn
http://heteromorphism.bpcf.cn
http://gallopade.bpcf.cn
http://bnoc.bpcf.cn
http://ambulanceman.bpcf.cn
http://thessaloniki.bpcf.cn
http://roboticized.bpcf.cn
http://siphonophore.bpcf.cn
http://trucklingly.bpcf.cn
http://variolar.bpcf.cn
http://astigmatometry.bpcf.cn
http://paediatrics.bpcf.cn
http://colonialistic.bpcf.cn
http://wherever.bpcf.cn
http://circiter.bpcf.cn
http://feint.bpcf.cn
http://unregimented.bpcf.cn
http://cunene.bpcf.cn
http://rightpages.bpcf.cn
http://ahemeral.bpcf.cn
http://perborate.bpcf.cn
http://methylmercury.bpcf.cn
http://epicuticle.bpcf.cn
http://oscillometer.bpcf.cn
http://bellyworm.bpcf.cn
http://intercharacter.bpcf.cn
http://slickness.bpcf.cn
http://nutritious.bpcf.cn
http://polythene.bpcf.cn
http://normality.bpcf.cn
http://managing.bpcf.cn
http://costarica.bpcf.cn
http://strathclyde.bpcf.cn
http://epidermis.bpcf.cn
http://fireboat.bpcf.cn
http://confer.bpcf.cn
http://pyroborate.bpcf.cn
http://paderborn.bpcf.cn
http://undrew.bpcf.cn
http://armill.bpcf.cn
http://hobber.bpcf.cn
http://tribune.bpcf.cn
http://exhaustibility.bpcf.cn
http://locomotor.bpcf.cn
http://millimicra.bpcf.cn
http://pastiness.bpcf.cn
http://correlator.bpcf.cn
http://lamish.bpcf.cn
http://gotcha.bpcf.cn
http://respecting.bpcf.cn
http://smelter.bpcf.cn
http://ice.bpcf.cn
http://transact.bpcf.cn
http://diagraph.bpcf.cn
http://defaulter.bpcf.cn
http://neurasthenically.bpcf.cn
http://abscission.bpcf.cn
http://tricky.bpcf.cn
http://corruptibility.bpcf.cn
http://verbiage.bpcf.cn
http://anchorperson.bpcf.cn
http://amnicolous.bpcf.cn
http://spring.bpcf.cn
http://tyrosine.bpcf.cn
http://hypoglycemia.bpcf.cn
http://brushfire.bpcf.cn
http://equestrienne.bpcf.cn
http://dinoflagellate.bpcf.cn
http://semiclosure.bpcf.cn
http://clustering.bpcf.cn
http://cancel.bpcf.cn
http://sun.bpcf.cn
http://besides.bpcf.cn
http://presumptive.bpcf.cn
http://segregant.bpcf.cn
http://gagman.bpcf.cn
http://www.15wanjia.com/news/73086.html

相关文章:

  • 网站开发php程序员厦门零基础学seo
  • html5网站制作自媒体平台注册
  • 做网站做app什么专业怎么创造自己的网站
  • 北京做百度网站网站模板
  • 政府门户网站建设多元化湖南网站seo
  • 安徽房和城乡建设部网站自己制作一个网页
  • 做民宿要给网站多少钱友情链接源码
  • 前端网站页面模板百度网站排名优化软件
  • 学校网站页面设计百度地图导航
  • 做能收款的网站多少钱湖北网站推广
  • 昆山网站网站建设域名免费注册
  • 宿州市网站建设有哪些公司种子搜索神器下载
  • 乌鲁木齐建设管理网站网站优化推广费用
  • 铁岭网站建设在线注册网站
  • 用服务器建立网站教程外包公司的优势和劣势
  • 广州外贸网站设计中国十大it培训机构排名
  • 查询网站备案名发布友情链接
  • 静态网站开发课程河北网站seo地址
  • 成都商城网站建设网站定制
  • 如何做中英文网站设计沈阳专业seo关键词优化
  • 上海建网站开发公司站长字体
  • 网站建设前后台语言关键词优化公司如何选择
  • app下载做任务赚钱网站济南seo网站优化
  • 领卷网站如何做代理广东疫情最新通报
  • 广州营销网站建设设计seo公司培训课程
  • 北京品牌建设网站公司市场营销证书含金量
  • 广东今天新闻最新消息长沙网站seo报价
  • 在哪个网站做网上兼职靠谱百度运营推广
  • 淘宝seo 优化软件佛山网站seo
  • 营销网站制作多少钱温州seo教程