反射机制是Java语言的一个重要特性,允许用户动态获取类的信息和动态调用对象的方法。

通过给定类的名字,通过反射机制就可以获取类的所有信息。

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;生成动态代理。

参考案例如下:

package com.reflect;public interface CalculatorProtocol {//定义个接口协议public int add(int a,int b);//两个数相加public int subtract(int a,int b);//两个数相减
}
package com.reflect;public class Server implements CalculatorProtocol{public int add(int a,int b){return a+b;}public int subtract(int a,int b){return a-b;}
}
package com.reflect;import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;public class CalculatorHandler implements InvocationHandler, net.sf.cglib.proxy.InvocationHandler{//实现调用处理器接口private Object objOriginal;public CalculatorHandler(Object obj){this.objOriginal=obj;}public Object invoke(Object proxy,Method method,Object[] args) throws Throwable{//此处添加预处理Object result=method.invoke(this.objOriginal, args);//此处添加后续处理return result;}
}
package com.reflect;import java.lang.reflect.InvocationHandler;import net.sf.cglib.proxy.Proxy;public class DynamicProxyExample {public static void main(String[] args){CalculatorProtocol server = new Server();//创建serverInvocationHandler handler=new CalculatorHandler(server);CalculatorProtocol client=(CalculatorProtocol)Proxy.newProxyInstance(server.getClass().getClassLoader(),server.getClass().getInterfaces(), (net.sf.cglib.proxy.InvocationHandler) handler);//创建clientint r=client.add(5, 3);System.out.println("5+3="+r);r=client.subtract(5, 3);System.out.println("5-3="+r);}
}

Java反射机制和动态代理实例相关推荐

  1. Java 反射机制和动态代理是基于什么原理,了解过吗?

    工作多年以及在面试中,我经常能体会到,有些面试者确实是认真努力工作,但坦白说表现出的能力水平却不足以通过面试,通常是两方面原因: 1."知其然不知其所以然". 做了多年技术,开发了 ...

  2. 【java】java反射机制,动态获取对象的属性和对应的参数值,并属性按照字典序排序,Field.setAccessible()方法的说明【可用于微信支付 签名生成】...

    方法1:通过get()方法获取属性值 package com.sxd.test.controller;public class FirstCa{private Integer num;private ...

  3. java学习笔记13--反射机制与动态代理

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note13.html,转载请注明源地址. Java的反射机制 在Java运行时环境中,对于任意 ...

  4. [转]Java反射机制详解

    目录 1反射机制是什么 2反射机制能做什么 3反射机制的相关API ·通过一个对象获得完整的包名和类名 ·实例化Class类对象 ·获取一个对象的父类与实现的接口 ·获取某个类中的全部构造函数 - 详 ...

  5. 【Java】Java反射机制重点总结

    文章目录 Java Reflection Java反射机制提供的功能 Java反射相关的主要API java.lang.Class类 Class类的核心要点 Class类的重要API 实例 实例化Cl ...

  6. Java:一步步带你深入了解神秘的Java反射机制

    Java:一步步带你深入了解神秘的Java反射机制· 前言 在 Java中,反射机制(Reflection)非常重要,但对于很多开发者来说,这并不容易理解,甚至觉得有点神秘 今天,我将献上一份 Jav ...

  7. Java反射机制基本概念与相关Class类对反射机制的实现

    Java反射机制 1.何为反射 2.反射作用 3.Class类实例化应用 3.1.进行Class类对象的实例化的三种方式 3.2.Class类实例化其他类对象的两种方式 3.2.1.调用newInst ...

  8. JAVA反射机制、Class类及动态加载、成员变量构造方法其他方法的反射与调用、代理模式AOP

    JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法: 对于任意一个对象,都能够调用它的任意一个方法和属性: 这种动态获取的信息以及动态调用对象的方法的功能称为java语言 ...

  9. 利用java反射机制 读取配置文件 实现动态类载入以及动态类型转换

    作者:54dabang 在spring的学习过程之中,我们能够看出通过配置文件来动态管理bean对象的优点(松耦合 能够让零散部分组成一个总体,而这些总体并不在意之间彼此的细节,从而达到了真正的物理上 ...

最新文章

  1. Vsftp 安装配置(转)
  2. Visual Studio 10将面世 微软走得太快?
  3. 常用的函数式接口_Function接口练习_自定义函数模型拼接
  4. java原子操作cas_java并发编程系列二:原子操作/CAS
  5. python正则表达式使用修饰符
  6. 【java】Java实现单向链表反转
  7. 基于JAVA+SpringMVC+Mybatis+MYSQL的学生健康信息管理系统
  8. 视频播放器测试用例分析(移动端)
  9. 电脑围棋中的人工智能技术
  10. 王之泰201771010131《面向对象程序设计(java)》第七周学习总结
  11. vue_elementui拖住滑块拼图验证代码
  12. 【例题 8-4 UVA - 11134】Fabled Rooks
  13. swiper轮播-可支持触摸滑动(整理)
  14. 联想笔记本查看电池寿命、近期用电情况和续航估计报告
  15. 【DNN】PNN(Product-based Neural Networks )
  16. 【ML】关于什么是概率图模型?
  17. 一款适合全自动智能锁电机驱动芯片方案
  18. matlab内联函数怎么作图,第1讲:向量,函数和作图
  19. CDeC-Net代码实现
  20. 考研高等数学张宇30讲笔记——第三讲 函数极限与连续性

热门文章

  1. Redis:Redis集群模式(Cluster)原理
  2. JVM 内存模型:方法区(Method Area)
  3. 数据库系统概论:第八章 数据库编程
  4. mysql索引检测_mysql检测重复索引
  5. c++ 句柄 计算控件坐标_练习答案|| 计算机基础第【28】期
  6. 测试面试话题5: 如何不漏测
  7. EZ 2018 07 06 NOIP模拟赛
  8. node-webkit中使用sqlite3
  9. 优秀案例:12个精美的设计工作室 设计公司网站
  10. SharePoint 如何检查一个SPWeb是否存在