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

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

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("小米");
    }
}

相关文章
|
设计模式 Java 程序员
静态代理和动态代理区别(是否有实现类)
静态代理和动态代理区别(是否有实现类)
383 0
静态代理和动态代理区别(是否有实现类)
|
Java 容器 Spring
Java反射 - 动态代理
使用Java反射,您可以在运行时创建接口的动态实现。 你可以使用类java.lang.reflect.Proxy。 这个类的名字是我将这些动态接口实现称为动态代理的原因。
1462 0
|
Java API
java反射实现动态代理
参考:http://www.cnblogs.com/rollenholt/archive/2011/09/02/2163758.html http://my.oschina.net/lyp3314/blog/136589 反射可以通过class来创建对象或者修改对象。
862 0
Java反射之创建对象
Java反射机制提供了另外一种创建对象方法,Class类提供了一个实例方法newInstance(),通过该方法 可以创建对象,使用起来比较简单,下面两条语句实现了创建字符串String对象。
Java反射之创建对象
|
9月前
|
Java API 开发者
解密Java反射机制与动态代理
解密Java反射机制与动态代理
64 0
|
XML Java 数据库连接
JAVA反射机制与动态代理
JAVA反射机制与动态代理
146 0
|
Java 编译器 Android开发
面向对象构造方法、抽象类、内部类
面向对象构造方法、抽象类、内部类
|
Java
Java反射机制(得到所有的构造方法)
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.
702 0
|
Java Spring 安全
JDK动态代理和CGLIB动态代理的区别以及反射
在Spring中的AOP是依靠动态代理来实现切面编程的.而这两者又是有区别的. JDK是基于反射机制,生成一个实现代理接口的匿名类,然后重写方法,实现方法的增强.它生成类的速度很快,但是运行时因为是基于反射,调用后续的类操作会很慢.
5586 0

热门文章

最新文章