首页 / JAVA / java学习笔记14--动态代理
java学习笔记14--动态代理
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java学习笔记14--动态代理,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1732字,纯文字阅读大概需要3分钟。
内容图文
![java学习笔记14--动态代理](/upload/InfoBanner/zyjiaocheng/843/f2459cbd820e4b97940124e43157f6f6.jpg)
InvocationHandler接口
public interface InvocationHandler{
public Object invoke(Object proxy,Method method,Object[] args)throws Throwable
}
参数说明:
Object proxy:被代理的对象
Method method:要调用的方法
Object args[]:方法调用时所需要的参数
Proxy类
Proxy类是专门完成代理的操作类,可以通过此类为一个或多个接口动态地生成实现类,此类提供了如下的操作方法:
public static Object newProxyInstance(ClassLoader loader,
Class<?>[] interfaces,
InvocationHandler h)
throws IllegalArgumentException
参数说明:
ClassLoader loader:类加载器
Class<?>[] interfaces:得到全部的接口
InvocationHandler h:得到InvocationHandler接口的子类实例
动态代理:
package com.itmyhome;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
interface IHello{ //定义接口
public void sayHello();
}
class HelloImpl implements IHello{
@Override
public void sayHello() {
// TODO Auto-generated method stub
System.out.println("hello itmyhome");
}
}
class MyInvocationHandler implements InvocationHandler{
private Object obj; //真实主题类
public Object bind(Object obj){
this.obj = obj;
return Proxy.newProxyInstance(obj.getClass().getClassLoader(), obj.getClass().getInterfaces(), this);
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
System.out.println("***before***");
Object temp = method.invoke(obj, args);
System.out.println("***after***");
return temp;
}
}
public class T {
public static void main(String[] args) throws Exception{
IHello h = (IHello)new MyInvocationHandler().bind(new HelloImpl());
h.sayHello();
}
}
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow
内容总结
以上是互联网集市为您收集整理的java学习笔记14--动态代理全部内容,希望文章能够帮你解决java学习笔记14--动态代理所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。