• Java Reflection:Java反射简介说明


    转自:

    Java Reflection:Java反射简介说明

    反射简介:

         Java反射就是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;并且能改变它的属性。而这也是Java被视为动态(或准动态,为啥要说是准动态,因为一般而言的动态语言定义是程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言。从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言。)语言的一个关键性质。

    反射的功能:

        反射机制允许程序在运行时取得任何一个已知名称的class的内部信息,包括包括其modifiers(修饰符),fields(属性),methods(方法)等,并可于运行时改变fields内容或调用methods。那么我们便可以更灵活的编写代码,代码可以在运行时装配,无需在组件之间进行源代码链接,降低代码的耦合度;还有动态代理的实现等等;但是需要注意的是反射使用不当会造成很高的资源消耗. 

    反射常见API:
    查阅 API 可以看到 Class 有很多方法:

      getName():获得类的完整名字。

      getFields():获得类的public类型的属性。

      getDeclaredFields():获得类的所有属性。包括private 声明的和继承类

      getMethods():获得类的public类型的方法。

      getDeclaredMethods():获得类的所有方法。包括private 声明的和继承类

      getMethod(String name, Class[] parameterTypes):获得类的特定方法,name参数指定方法的名字,parameterTypes 参数指定方法的参数类型。

      getConstructors():获得类的public类型的构造方法。

      getConstructor(Class[] parameterTypes):获得类的特定构造方法,parameterTypes 参数指定构造方法的参数类型。

      newInstance():通过类的不带参数的构造方法创建这个类的一个对象。

      


        我们都知道Java反射的思路是在java运行时对类,接口,变量,方法进行相关操作,
    反射操作可实例化对象,调用实例化对象对应的方法,对应的get/set方法 例:
    反射获取一个类的方法并运行

      例:

    1. Method[] methods = MyObject.class.getMethods();
    2. for(Method method : methods){
    3. System.out.println("method = " + method.getName());
    4. }

  • 相关阅读:
    入门正则表达式
    普通人做自媒体视频剪辑会有出路吗?
    无人注意,新安装的 Ubuntu 23.04 不支持安装 32 位应用
    MySQL 计算年龄
    HTML基础标签
    (免费分享)基于springboot健康运动-带论文
    nodejs+mysql网上书店图书销售购物商城系统vue
    Java三大版本及 JVM JDK JRE 及 SDK API
    高并发 MySQL 性能优化指南,自取
    【ros2 control 机器人驱动开发】双关节多控制器机器人学习-example 6
  • 原文地址:https://blog.csdn.net/qq_25073223/article/details/126685304