zoukankan      html  css  js  c++  java
  • 关于反射

    反射的方法比较多,不过都遵循以下规律:

    Method表示方法,Field表示成员变量,Constructor表示构造方法;后面加s表示一次获取多个。
    因为java中允许有多个同名的方法(普通方法和构造方法),只要其传入参数的类型(包括)不同即可,所以在获取单个方法的时候,不光要指定方法的名称,还要指定参数的类型。

    因为类中的成员如果public修饰符,外部不能直接访问,所以有Declared的方法是可以获取到public和非public的成员的。如果没有Declared则表明获取public的。详情如下:

    一、getFields()与getDeclaredFields()

    getFields()只能访问类中声明为公有的字段,私有的字段它无法访问

    getDeclaredFields()能访问类中所有的字段,与public,private,protect无关

    二、getMethods()与getDeclaredMethods()

    getMethods()只能访问类中声明为公有的方法,私有的方法它无法访问,能访问从其它类继承来的公有方法

    getDeclaredFields()能访问类中所有的字段,与public,private,protect无关,不能访问从其它类继承来的方法

    三、getConstructors()与getDeclaredConstructors()

    getConstructors()只能访问类中声明为public的构造函数

    getDeclaredConstructors()能访问类中所有的构造函数,与public,private,protect无关

    更详细关于反射的资料参照:http://www.cnblogs.com/qinbin/archive/2013/01/03/java-reflect.html

  • 相关阅读:
    django的命令, 配置,以及django使用mysql的流程
    vue中局部组件的使用
    Chapter14【Collection、泛型】
    泛型
    集合遍历的方式(迭代器和增强for)
    Collection集合
    集合
    数组
    包装类
    基本类型与字符串之间的转换
  • 原文地址:https://www.cnblogs.com/yejg1212/p/2844678.html
Copyright © 2011-2022 走看看