美文网首页Java学习笔记
JAVA学习笔记之 反射

JAVA学习笔记之 反射

作者: 红姑娘 | 来源:发表于2016-12-02 14:22 被阅读6次

反射:通过一个class文件对象来使用该class文件中的构造方法,成员变量,成员方法。

  • 如何获取Class类文件的对象呢?

  • A:Object类中的getClass()。

  • B:通过数据类型的一个静态的class属性。

  • C:通过Class类的一个静态方法forName()。

  • 为什么开发中使用第三种格式呢?

  •  因为我们可以通过配置文件来提供类的路径或者方法供我们使用。
    

相关方法:

  1. 方法:public static Class<?> forName(String className)
    意思:通过Class类的一个静态方法获得这个类的字节码对象
    使用:Class class = Class.forName("路径");

2.方法:public T newInstance()
意思:通过字节码对象获取Class的类的对象
使用:Object obj = class.newInstance(); // 其实调用的是类的无参构造方法。

  1. 方法:public Constructor<?>[] getConstructors()
    意思:通过字节码文件对象去获取所有公共的构造方法对象
    使用:Constructor[] cons = class.getConstructors();

4.方法:public Constructor<?>[] getDeclaredConstructors()
意思:通过字节码文件对象去获取所有的构造方法对象
使用:Constructor[] cons = class.getDeclaredConstructors();

5.方法:public Constructor getConstructor(Class<?>... parameterTypes)
意思:通过字节码文件对象去获取构造方法
使用:Constructor cons = class.getConstructor();//单个构造
Constructor con = c.getConstructor(String.class, int.class,
String.class);//多个构造

6.方法:public T newInstance(Object ... initargs)
意思:通过构造方法对象获取此对象
使用:Object obj = cons.newInstance();

7.方法:public void setAccessible(boolean flag)
意思:取消 Java 语言访问检查
使用:cons.setAccessible(true);

8.方法:public Field[] getFields()
意思:通过反射获取所有公共的成员变量
使用:Field[] fields = class.getFields();

9.方法:public Field getField(String name)
意思:通过反射获取获取单个成员变量
使用:Field addressField = class.getField("address");

10.方法:public void set(Object obj,Object value) 针对所有引用类型的成员变量而言
意思:给obj对象的address成员变量赋值为香港
使用:addressField.set(obj, "香港");

11.方法:public Field[] getDeclaredFields()
意思:通过反射获取所有成员变量
使用:Field[] fields = class.getDeclaredFields();

相关文章

  • Java学习笔记之反射机制

    title: Java学习笔记之反射机制tag: Javacategories: Java 理论介绍 为了便于理解...

  • [JAVA学习笔记] 反射机制

    [JAVA学习笔记] 反射机制 Java的反射通过Class类和java.lang.reflect类库实现。通过它...

  • 【转】Java编程学习之反射技术及其应用

    【转】Java编程学习之反射技术及其应用 (原文链接:java编程学习之反射技术及其应用) 说明:原文中给出的代码...

  • JNI开发学习之C反射调用java方法

    前面记录了调用C的学习笔记,现在来记录一下C反射调用Java的笔记。JNI开发学习之调用C方法 Android开...

  • JAVA学习笔记之 反射

    反射:通过一个class文件对象来使用该class文件中的构造方法,成员变量,成员方法。 如何获取Class类文件...

  • java学习笔记之反射

    1.在java语言中,静态的成员变量,普通数据类型类等等都是对象,类也是对象,是java.lang.Class类的...

  • Java基础之反射

    Java基础之—反射(非常重要)Java中反射机制详解Java进阶之reflection(反射机制)——反射概念与...

  • Android Kotlin 反射使用笔记

    前言 java反射的写法,做下笔记 反射用法

  • Java反射由浅入深

    分享一下学习反射的笔记,了解反射之前要先了解一下java的class类。 1. Class类 Java除了基本类型...

  • Java笔记之——反射

    这篇文章来谈谈Java基础——反射的内容。主要通过以下几点进行介绍:反射机制、反射的使用及有关反射的API。 一、...

网友评论

    本文标题:JAVA学习笔记之 反射

    本文链接:https://www.haomeiwen.com/subject/ntfqmttx.html