• Java反射机制


    基本概念

      理解反射机制的简单例子:通过一个对象可以找到一个类的名称等相关信息
      核心概念:一切的操作都将使用Object完成,类、数组的引用都可以使用Object进行接收
      可以通过反射取得一个类所继承的父类、实现的接口、类中的全部构造方法、全部普通方法及全部属性

    Class类

    • 所有类实际上都是Class类的实例即Class类是反射机制的源头
    • Object类是一切类的父类
    • 实例化Class对象的三种方式
      1. 通过Object类中的getClass()方法即 new T().getClass()
      2. 通过 类.class 的形式
      3. 通过Class.forName(String 完整的 包.类)方法,此种方式最为常用
    • 可以通过Class类中的newInstance()方法进行对象的实例化操作,但是要求类中必须存在无参构造方法,如果类中没有无参构造方法,则必须使用Constructor类完成对象的实例化操作。

    反射的应用

    • 取得类的结构
    • 通过反射调用类中方法
    • 通过反射操作数组
    • 实现动态代理(需要java.lang.reflect.Invocationhandler接口hava.lang.reflect.Proxy类的支持)
      1. 首先,定义一个InvocationHandler接口的子类,以完成代理的具体操作
      2. InvocationHandler接口子类的bind()方法中接受被代理对象的真实主题实现,之后重写InvocationHandler接口中的invoke()方法,完成具体的方法调用
      3. 操作时只需将真实主题类的对象传入到InvocationHandler接口子类的bind()方法中即可
    • 在程序的开发中使用反射机制并结合属性文件,可与达到程序代码与配置文件相分离的目的。
  • 相关阅读:
    [CQOI2009]叶子的染色
    CF149D 【Coloring Brackets】
    [BJOI2016]回转寿司
    linux基础学习-19.2-Shell脚本的创建
    linux基础学习-19.1-Shell的介绍
    linux基础学习-18.11-第六关考试题
    linux基础学习-18.10-awk数组
    linux基础学习-18.9-awk中的动作
    linux基础学习-18.8-awk特殊模式-BEGIN模式与END模式
    linux基础学习-18.7-awk范围模式
  • 原文地址:https://www.cnblogs.com/liminghuang/p/8681472.html
Copyright © 2020-2023  润新知