博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java反射机制
阅读量:4671 次
发布时间:2019-06-09

本文共 794 字,大约阅读时间需要 2 分钟。

基本概念

  理解反射机制的简单例子:通过一个对象可以找到一个类的名称等相关信息

  核心概念:一切的操作都将使用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()方法中即可
  • 在程序的开发中使用反射机制并结合属性文件,可与达到程序代码与配置文件相分离的目的。

转载于:https://www.cnblogs.com/liminghuang/p/8681472.html

你可能感兴趣的文章
算法题003 斐波那契(Fibonacci)数列
查看>>
MySQL索引背后的数据结构及算法原理
查看>>
CSS定位 position
查看>>
冒泡排序
查看>>
es7新特性 includes用法
查看>>
block,inline和inline-block
查看>>
SQA
查看>>
Spring+Struts集成(方案一)
查看>>
在Windows 7中安装、配置和使用IIS7和ASP
查看>>
商业信息敏感、安全处理(口令、数字证书-U盾-密保卡、指纹识别-虹膜识别)...
查看>>
数据库设计的三大范式通俗解释
查看>>
H3C 典型数据链路层标准
查看>>
反向数据库表
查看>>
【原创】Elasticsearch无宕机迁移节点
查看>>
Stripe
查看>>
CC攻击及其解决方法
查看>>
Android安卓手机能不能实现BT文件边下边播?
查看>>
C/C++中printf和C++中cout的输出格式
查看>>
C# CharacterToBinary 将类似2进制字符串 10010110111 转换为数值型源码
查看>>
课后作业-阅读任务-阅读提问-3
查看>>