栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

java.lang.reflect.Proxy的替代品,用于创建抽象类的代理(而不是接口)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java.lang.reflect.Proxy的替代品,用于创建抽象类的代理(而不是接口)

可以使用Javassist(请参见ProxyFactory)或CGLIB来完成。

亚当使用Javassist的示例:

我(Adam Paynter)使用Javassist编写了以下代码:

ProxyFactory factory = new ProxyFactory();factory.setSuperclass(Dog.class);factory.setFilter(    new MethodFilter() {        @Override        public boolean isHandled(Method method) { return Modifier.isAbstract(method.getModifiers());        }    });MethodHandler handler = new MethodHandler() {    @Override    public Object invoke(Object self, Method thisMethod, Method proceed, Object[] args) throws Throwable {        System.out.println("Handling " + thisMethod + " via the method handler");        return null;    }};Dog dog = (Dog) factory.create(new Class<?>[0], new Object[0], handler);dog.bark();dog.fetch();

产生以下输出:

纬!通过方法处理程序处理公共抽象void mock.Dog.fetch()


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/407399.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号