首页 > 编程语言 >Java Proxy

Java Proxy

时间:2023-07-24 22:56:43浏览次数:55  
标签:Java target Object class Proxy TarInterface public

package com.su.liuqing.proxy_;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

public class ProxyTest {

// 目标接口
public interface TarInterface {
    void say();
}

// 调用处理器
public static class MyHandler<T> implements InvocationHandler {
    // 目标对象
    private final T target;

    public MyHandler(T target) {
        this.target = target;
    }

    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
        System.out.println("方法执行前");
        // 目标方法执行
        return method.invoke(target, args);
    }
}

public static void main(String[] args) {
    // 目标对象
    TarInterface target = new TarInterface() {
        private final String name = "tar";

        public void say() {
            System.out.println("hello");
        }
    };
    MyHandler<TarInterface> myHandler = new MyHandler<>(target);
    // 创建代理对象
    Object proxyInstance = Proxy.newProxyInstance(ProxyTest.class.getClassLoader(), new Class[]{TarInterface.class}, myHandler);
    TarInterface p = (TarInterface) proxyInstance;
    p.say();
}

}

标签:Java,target,Object,class,Proxy,TarInterface,public
From: https://www.cnblogs.com/sung1024/p/17578573.html

相关文章

  • Java中的super关键字
    Java中super是一个关键字,和this的比较类似。1、特点: (1)super指向的是当前对象的父类型,而this指向的是当前对象; (2)虽然在大部分情况下super可以省略,但如果需要使用父类的方法或者属性,则必须使用super;1publicclassPerson{23publicPerson(){4......
  • Java-Day-35( 类加载 + 细化解释各阶段 )
    Java-Day-35类加载基本说明反射机制是java实现动态语言的关键,也就是通过反射实现类动态加载静态加载:编译时加载相关的类,如果没有则报错,依赖性太强在非具备idea辅助型的工具里编写代码时importjava.util.Scanner;publicclasstest{publicstaticvoidmain(......
  • Java-Day-36( 通过反射获取类的结构信息 + 通过反射访问类中的成员 + 章节练习 )
    Java-Day-36通过反射获取类的结构信息第一组:java.lang.Class类以下说的包含本类和父类——也包括超类等方法属性之类的若是输出时不加.getName,则都是输出:com.zyz.Zyz()publicclasstest{publicstaticvoidmain(String[]args){}@Testpubl......
  • 老杜 JavaWeb 讲解(十四) ——JSP+Servlet改造oa项目
    (十四)JSP改造oa项目相关视频:38-Servlet和JSP改造oa项目使用Servlet+JSP完成oa项目的改造使用Servlet处理业务,收集数据。使用JSP展示数据。将之前原型中的html文件,全部修改为jsp,然后在jsp文件头部添加page指令(指定contentType防止中文乱码),将所有的JSP直接拷贝到web......
  • 价值年薪70W的JAVA进阶学习路线!终于让我从阿里P8手里抠出来了
    作为一个男人我感觉必须得做点什么来证明一下自己,现在我又回来了,准备把自己的节操准备补一下。另外给各位未来的Java程序员说一句,别的我不清楚,学习编程请从一而终咱们学习编程就挺难的,有这些先驱者来带领咱们学习,咱们应该感激,而且最重要的事跟着你选定的一家一直学下去因为每家学校......
  • 用Java集合中的Collections.sort方法对list排序的两种方法
    用Collections.sort方法对list排序有两种方法第一种是list中的对象实现Comparable接口,如下:   <strong>/**02 *根据order对User排序03 */04 publicclassUserimplementsComparable{05 privateStringname;06 privateIntegerorder;07 publicStringgetN......
  • tokyotyrant-java客户端
    目录:概述演示[一]、概述java实现了对ttserver服务端的连接和访问。相关的源代码和jar包可以到其官网下载。官网地址:http://code.google.com/p/tokyotyrant-java/如果是maven构建项目的,在pom.xml的<dependencies>节点中增加如下依赖配置即可:1 <dependency>2<groupId>......
  • 为什么有一些什么方法都没有的接口会存在?比如java.lang.Cloneable
    /***Aclassimplementsthe<code>Cloneable</code>interfaceto*indicatetothe{@linkjava.lang.Object#clone()}methodthatit*islegalforthatmethodtomakea*field-for-fieldcopyofinstancesofthatclass.*<p>*Invo......
  • Java类加载
    Java类加载类加载过程加载:JVM将class文件加载到内存中,并生成class对象连接(验证、准备、解析):JVM校验class对象的规范性等初始化:JVM执行class对象中的静态代码块的语句和对静态变量的赋值操作使用:创建实例化对象、调用方法等卸载:类加载机制类加载源码protectedClass<?>lo......
  • 软件级负载均衡器(LVS/HAProxy/Nginx)的特点简介和对比
    原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。http://yuhongchun.blog.51cto.com/1604432/697466<!--正文begin-->现在网站发展的趋势对网络负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不......