1. 反射主要对象

    1. Class
    2. Constructor
    3. Field
    4. Method
  2. API-Class
    1. 获取Class对象

      1. Object.getClass()
      2. className.class
      3. Class.forName()
      4. Class.getComponentType() 获得数组对象的元素类型
    2. 获取Class信息
      1. getDeclaredClasses() 返回在类中定义的公共、私有、保护的内部类和接口。但不包括继承的内部类和接口
      2. getClasses() 返回在类中定义的公共的内部类和接口,以及从父类、父接口那里继承来的内部类和接口
      3. getClassLoader() 返回加载此类的类加载器
      4. getConstructors() 返回public构造器
      5. getDeclaredConstructors() 返回所有构造器
      6. getFields() 获取所有public成员变量
      7. getDeclaredFields() 获取所有成员变量
      8. getDeclaredMethods() 获取此类所有的public方法,包括继承
      9. getDeclaredMethods() 获取在此类中定义的所有方法(public, private), 但不包括继承的方法
    3. 产生对象
      1. newInstance() 只能使用无参构造器
  3. API-Field
    1. 获取类的成员变量信息(包括类变量和实例变量)

      3. 获取变量名 field.getName()

      4. 获取变量类型 field.getType()

      5. 获取变量的参数类型,针对泛型 field.getGenericType()

      6. 获取变量修饰符 field.getModifiers() 含义见 Modifier类

      7. 获取变量所在的类 field.getDeclaringClass()
    2. 读写成员变量的值
      1. 读取成员变量的值

        // public
        field.get(foo)
        // private
        field.setAccessible(true)
        field.get(foo)
      2. 修改成员变量的值

        field.set(foo, "123")
        // private
        field.setAccessible(true)
        field.set(foo, "123")
  4. API-Method
    1. 获取方法信息

      1. method.getName()
      2. ...
    2. 反射调用方法
      1. method.invoke()
  5. API-Constructor
    1. newInstance() 生成对象,可以使用带参构造器

java反射API的更多相关文章

  1. Java反射API研究(1)——注解Annotation

    注解在表面上的意思,只是标记一下这一部分,最好的注解就是代码自身.而在java上,由于注解的特殊性,可以通过反射API获取,这种特性使得注解被广泛应用于各大框架,用于配置内容,代替xml文件配置. 要 ...

  2. Java反射API研究(3)——java.lang.Class<T>

    对于反射来说,Class是核心,任何反射的对象都需要通过Class来获得. Class 类的实例表示正在运行的 Java 应用程序中的类和接口.枚举是一种类,注释是一种接口.每个数组属于被映射为 Cl ...

  3. Java反射API研究(2)——java.lang.reflect详细内容与关系

    对于最新的java1.8而言,reflect中接口的结构是这样的: java.lang.reflect.AnnotatedElement java.lang.reflect.AnnotatedType ...

  4. Java反射api详解

    虽然已经用了很多反射相关的api,但是还没有详细研究官方api文档,下面以1.6为基础研究一下api文档(因为只找到了1.6的中文版...),同时补充1.7和1.8对反射相关api的改变.

  5. Java反射API使用实例

    /**     * 访问Class对应的类所包含的注释:getAnnotation();getDelaredAnnotation();     * 访问Class对应的类所包含的内部类:getDecl ...

  6. Java反射API研究(4)——Class中的重要对象

    一.Constructor与Method的父类:Executable Executable表示一个可执行类,构造方法与普通方法都是Executable AnnotatedType[] getAnnot ...

  7. JDK1.7新特性(4):java语言动态性之反射API

    直接通过一个代码示例来熟悉java中通过反射来对构造函数/域以及方法处理的相关API: package com.rampage.jdk7.chapter2; import java.lang.refl ...

  8. Java 反射机制及Annotation

    转自:http://justjavac.iteye.com/blog/714654 Java 反射是 Java 语言的一个很重要的特征. 它允许运行中的 Java 程序对自身进行检查,并能直接操作程序 ...

  9. Java 反射机制分析指南

    一.JAVA是动态语言吗? 一般而言,说到动态言,都是指在程序运行时允许改变程序结构或者变量类型,从这个观点看,JAVA和C++一样,都不是动态语言. 但JAVA它却有着一个非常突出的动态相关机制:反 ...

随机推荐

  1. 变量 (Variable)

    Tensor不能反向传播. variable可以反向传播. 什么是 Variable import torch from torch.autograd import Variable # torch ...

  2. ApacheHudi常见问题汇总

    欢迎关注公众号:ApacheHudi 1. ApacheHudi对个人和组织何时有用 如果你希望将数据快速提取到HDFS或云存储中,Hudi可以提供帮助.另外,如果你的ETL /hive/spark作 ...

  3. 「BZOJ4510」「Usaco2016 Jan」Radio Contact 解题报告

    无线电联系 Radio Contact 题目描述 Farmer John has lost his favorite cow bell, and Bessie the cow has agreed t ...

  4. 1058 选择题 (20 分)C语言

    批改多选题是比较麻烦的事情,本题就请你写个程序帮助老师批改多选题,并且指出哪道题错的人最多. 输入格式: 输入在第一行给出两个正整数 N(≤ 1000)和 M(≤ 100),分别是学生人数和多选题的个 ...

  5. Date、Time类型拼接成字符串

    Date.Time类型拼接成字符串 语言用的是kotlin,和Java类似 var time = "" val sdf1 = SimpleDateFormat("yyyy ...

  6. npm安装报错npm ERR! Refusing to install package with name "xxxx" under a packagexxxx

    npm ERR! code ENOSELF npm ERR! Refusing to install package with name "webpack" under a pac ...

  7. Django框架之数据库ORM框架

    首先,我来介绍一下什么是ORM框架: O是object,也就类对象的意思,R是relation,翻译成中文是关系,也就是关系数据库中数据表的意思,M是mapping,是映射的意思.在ORM框架中,它帮 ...

  8. BZOJ 2038: [2009国家集训队]小Z的袜子 (莫队)

    题目传送门:小Z的袜子 Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命…… ...

  9. Faster Rcnn训练自己的数据集过程大白话记录

    声明:每人都有自己的理解,动手实践才能对细节更加理解! 一.算法理解 此处省略一万字.................. 二.训练及源码理解 首先配置: 在./lib/utils文件下....运行 p ...

  10. redis简单操作

    一.redis 基础操作 1.1.string 类型及操作 string 是最简单的类型,一个key对应一个value,string类型是二进制安全的.redis的string可以包含任何数据. 1. ...