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工具类(了解)

  • 相关阅读:
    HAproxy 1.5 dev14 发布
    IBM/DW 使用 Java 测试网络连通性的几种方法
    Skype 4.1 Linux 发布,支持微软帐号登录
    Dorado 7.1.20 发布,Ajax的Web开发平台
    Aspose.Slides for Java 3.0 发布
    开发版本 Wine 1.5.18 发布
    BitNami Rubystack 开始支持 Ruby 2.0
    XWiki 4.3 正式版发布
    Silverlight实例教程 Out of Browser的Debug和Notifications窗口
    Silverlight实例教程 Out of Browser与Office的互操作
  • 原文地址:https://www.cnblogs.com/djlindex/p/11340082.html
Copyright © 2011-2022 走看看