zoukankan      html  css  js  c++  java
  • Java——反射

      又是一个之前没有好好学的点,落下的东西实在太多了,希望来得及。

      书中写到,反射机制可以用来:1、在运行时分析类的能力。2、在运行时查看对象。3、实现通用的数组操作代码。4、利用Method对象,这个对象很像C++中的函数指针。

    Class类

      程序运行期间,系统始终为所有对象维护一个被称为运行时的类型标识。这个信息跟踪着每个对象所属的类。虚拟机利用运行时类型信息选择相应方法执行。

      Object类中的getClass()方法就可返回这样一个保存这些信息的Class类的实例。一个Class对象表示一个特定类的属性。最常用的Class方法是getName方法,这个方法会返回该类的名字,如果类在一个包里,那么包名也会是类名的一部分。

      还可以通过Class的forName静态方法,获得类名对应的Class对象,即Class.forName(className)。若className不是类名或接口名,则该方法将会抛出一个异常。因此,使用该方法时,需要提供异常处理方法。

      getClass().newInstance()也是一个获取类实例的方法。

    利用反射分析类的能力

      java.lang.reflect包里有Field、Method、Constructor三个类,分别描述类的域、方法和构造器。三个类都有getName方法,用于返回类的名称。

      Field类可以通过getType方法,用来返回描述域所属类型的Class对象。Method,Constructor类都有能报告参数的方法。Method的方法更加丰富,还能报告方法的返回值、方法的访问关键字。

      Class类中的getFields、getMethods、getConstructors方法也可以返回类提供的public域、方法和构造器数组。getDeclareFields、getDeclareMethods、getDeclareConstructors方法可返回类中声明的所有域、方法和构造器。

  • 相关阅读:
    POJ 1953 World Cup Noise
    POJ 1995 Raising Modulo Numbers (快速幂取余)
    poj 1256 Anagram
    POJ 1218 THE DRUNK JAILER
    POJ 1316 Self Numbers
    POJ 1663 Number Steps
    POJ 1664 放苹果
    如何查看DIV被设置什么CSS样式
    独行DIV自适应宽度布局CSS实例与扩大应用范围
    python 从入门到精通教程一:[1]Hello,world!
  • 原文地址:https://www.cnblogs.com/dloooooo/p/13758369.html
Copyright © 2011-2022 走看看