动态代理的实现(基于匿名内部类)

简介: 动态代理的实现(基于匿名内部类)

1、写一个接口

public interface BuyPhoneService {
    void buyPhone(String phone);
}

2、实现接口

public class BuyPhoneServiceImpl implements BuyPhoneService {
    @Override
    public void buyPhone(String phone) {
        System.out.println("买"+ phone +"手机");
    }
}

3、编写匿名内部类并调用

public class Xc {
    public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, IllegalAccessException {
        BuyPhoneService buyPhoneService = new BuyPhoneServiceImpl();
        BuyPhoneService aa = (BuyPhoneService) Proxy.newProxyInstance(buyPhoneService.getClass().getClassLoader(), buyPhoneService.getClass().getInterfaces(),
                new InvocationHandler() {
                    @Override
                    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
                        System.out.println("增强");
                        Object invoke = method.invoke(buyPhoneService, "华为");
                        System.out.println("增强");
                        return invoke;
                    }
                });
        aa.buyPhone("小米");
    }
}

相关文章
|
6天前
|
Java API 开发者
解密Java反射机制与动态代理
解密Java反射机制与动态代理
15 0
|
6天前
|
设计模式 缓存 监控
静态代理与动态代理
静态代理与动态代理
17 0
|
9月前
反射的应用:动态代理
反射的应用:动态代理
33 0
|
10月前
|
Java
jdk动态代理和cglb动态代理
jdk动态代理和cglb动态代理
|
设计模式 Java 程序员
静态代理和动态代理区别(是否有实现类)
静态代理和动态代理区别(是否有实现类)
327 0
静态代理和动态代理区别(是否有实现类)
|
存储 Java Apache
一文理解动态代理和静态代理
一文理解动态代理和静态代理
172 0
一文理解动态代理和静态代理
|
Java 索引
静态代理与JDK动态代理与CGLIB动态代理(下)
静态代理与JDK动态代理与CGLIB动态代理(下)
|
XML Java 数据库连接
JAVA反射机制与动态代理
JAVA反射机制与动态代理
117 0
面试官问我:什么是静态代理?什么是动态代理?注解、反射你会吗?
欢迎关注同名公众号《Java鱼仔》,更多知识点你值得拥有 开场 一位穿着蓝色衬衫,牛仔裤,拿着一个白色保温杯的中年男子急匆匆地坐在你对面,看样子是项目上的东西很急,估摸面试时间不会太长,这样一想心情放松了许多......(后来我就被打脸了)
面试官问我:什么是静态代理?什么是动态代理?注解、反射你会吗?
|
程序员
静态代理和动态代理,什么场景使用?
静态代理和动态代理,什么场景使用?
331 0