package com.kaige123;/**
* 程序员
* @author 凯哥
*/public interface Chengxuyuan { /**
* 写代码方法
*/
public void xiedaima();
}
package com.kaige123;/**
* 程序员接口实现类
* @author 凯哥
*/public class ChengxuyuanImpl implements Chengxuyuan { public void xiedaima() {
System.out.println("写代码...");
}
}
package com.kaige123;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;
/**
* 处理类
* @author 凯哥
*/public class CxyHandler implements InvocationHandler { //程序员实现对象传递
private Chengxuyuan c; public CxyHandler(Chengxuyuan c) { this.c = c;
} /**
* 程序员接口的方法只要被调用就会通知到吃方法上
* @param proxy 代理对象
* @param method 告诉你 调用的方法 封装对象
* @param args 参数
*/
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
System.out.println("方法名称:"+method.getName());
System.out.println("喝个咖啡,先把衣服穿上");
Object obj=method.invoke(c, args);//调用方法
System.out.println("衣服脱了,继续喝咖啡");
return obj;
}
}
package com.kaige123;
import java.lang.reflect.Method;import java.lang.reflect.Proxy;/**
* 测试类
* @author 凯哥
*
*/public class Test { public static void main(String[] args) { //实现类对象
ChengxuyuanImpl chengxuyuanImpl = new ChengxuyuanImpl(); //得到反射类
Class classs = chengxuyuanImpl.getClass(); //创建处理类 然后把实现类对象传递
CxyHandler handler = new CxyHandler(chengxuyuanImpl); //开始创建代理对象 然后把代理对象转换成接口类型
Chengxuyuan chengxuyuan = (Chengxuyuan)
Proxy.newProxyInstance(
classs.getClassLoader(),
classs.getInterfaces(),
handler); //调用方法 有如 >>>invoke(Object proxy, Method method, Object[] args) >> xiedaima() >>调用完毕
chengxuyuan.xiedaima();
}
}
结果:
方法名称:xiedaima
喝个咖啡,先把衣服穿上
写代码...
衣服脱了,继续喝咖啡
相关推荐
java反射机制和动态代理的原理,熟悉反射机制和动态代理
Java的反射机制与动态代理是Java编程中两个非常重要的高级特性,它们在许多实际场景中发挥着关键作用,如框架开发、插件系统、元数据处理等。下面将详细讲解这两个概念及其应用。 首先,Java的反射机制允许我们在...
主要讲述Java反射机制与设计模式之一:代理模式的原理与应用;同时详细讲述了Java对代理模式的支持以及Java中动态代理的原理,应用与实践。
总结来说,Java反射机制和动态代理是Java编程中不可或缺的部分,它们极大地扩展了Java的灵活性和可扩展性,使得程序员可以在运行时对程序进行更深层次的控制。了解和熟练掌握这两项技术,对于提高Java开发能力和解决...
#### 一、JAVA反射机制概述 JAVA的反射机制是一种强大的功能,允许程序在运行时获取类的信息并操作类的对象。这种能力在很多情况下非常有用,比如在进行代码框架设计时,我们经常需要在运行时根据不同的条件选择...
总的来说,Java反射机制和动态代理是Java平台强大而灵活的特性,它们使得Java程序能够在运行时具有更高的灵活性和可扩展性。然而,使用反射也可能带来性能开销和安全风险,因此在实际应用中需要权衡利弊,合理使用。
Java反射和动态代理是Java编程中的重要特性,它们在实现高度灵活和动态的代码执行方面发挥着关键作用。本文将深入探讨这两个概念及其在实际开发中的应用。 **Java反射** Java反射API允许程序在运行时检查类、接口...
详细讲解java的reflect包的,阐述反射机制及动态代理的细节问题。其中动态代理部分内容参考网上资料。读完此文,相信会对javaf反射机制有一个完整清楚的了解。尤其应该看看其他中代码举例部分。
Java反射是Java编程语言中的一个强大特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Java中,反射机制的核心类包括`Class`、`Field`、`Method`和`Constructor`,它们分别代表类、...
JAVA反射机制与动态代理.part04
Java反射机制与动态代理是Java编程中的重要概念,它们在软件设计中扮演着核心角色,尤其是在框架开发中。本文将深入探讨这两个主题,以及如何在实际应用中利用它们。 首先,我们来理解Java反射机制。反射是Java的一...
1. 动态代理原理:动态代理是基于Java反射机制,通过在运行时动态生成实现了特定接口的代理类,以此来实现对原对象的代理。 2. java.lang.reflect.Proxy类:Proxy类提供了创建动态代理类和代理对象的工厂方法。通过...
几个Java反射和动态代理的小例子。可以学习如何通过Java的反射机制实例化对象、调用对象的方法、操作对象的私有成员变量、改变数组中的某项的值、改变数组大小等;可以学习Java的动态代理模式、学习Java工厂模式以及...