zoukankan      html  css  js  c++  java
  • 第23章:反射与类操作

    反射获取类结构信息  

      从clazz可以调用的方法说明获取类的信息(方法,属性,。。。。。)

    public Package getPackage()  获取包信息

    public Class<? super T> getSuperClass()  获取继承父类(的字节码信息)

    public Class<?>[] getInterface()  获取实现接口(返回数组,一个一个遍历)

    Clazz<?>[] clazz2 = clazz.getInterface();      代码片段,见微知著上面方法如何获取

    for(Class<?> temp : clazz){

      System.out.println(temp.getName());

    }

    反射调用构造方法

        实例化方法替代:calzz.getDeclaredConstructor.newInstance();

    所有类的构造方法的获取都可以直接通过Class类来完成,该类中定义有如下的几个方法

    反射调用普通方法

      在进行反射处理的时候也可以通过反射来获取类之中的全部方法,但是需要提醒的是,如果要想通过反射调用这些方法,必须有一个前提条件:类之中要提供有实例化对象。

      在Class类里面有如下操作可以获取方法对象:

      上面代码与开发关系不大,只要知道可以根据反射获取方法的结构即可,不需深入了解。Methos类中invoke()方法并结合实例化对象(Object类型)实现反射方法调用是一定要会的。

     通过反射实现的方法调用最大的特点是可以直接利用Object类型的实例化对象进行方法调用,但是在获取   方法对象   是需要明确知道方法名称   以及    方法的参数类型

      利用此类操作整体的形式上不会有任何的明确的类对象产生,一切都是依靠发射机制处理的,这样的处理避免了与某一个类的耦合问题。

    反射调用成员属性(了解)

    Unsafe工具类(了解)

  • 相关阅读:
    关于MySQL INT类型长度的疑惑
    uwp 的锁屏功能
    QT5 动态链接库的创建和使用
    Qt 自定义事件的实现
    学习k8s本地虚拟机安装minikube
    建议收藏!细说HashMap实现,Hash冲突模拟思路讲解。
    95. Unique Binary Search Trees II
    96. Unique Binary Search Trees(dp)
    574 React系列(一)
    如何在Win7电脑上增加新磁盘分区?
  • 原文地址:https://www.cnblogs.com/djlindex/p/11340082.html
Copyright © 2011-2022 走看看