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

LambdaMetafactory可以访问其他ClassLoader上的类

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

LambdaMetafactory可以访问其他ClassLoader上的类

如此回答所述,查找模式必须包含私有访问才能被接受

LambdametaFactory
。基本上,这意味着调用者

指定的类,因为它创建了特定的查找实例,或者查找类具有足够的信任关系,可以将查找对象传递给执行实际调用的代码(例如,在使用
invokedynamic
指向时隐含到特定的引导方法)。

从Java 9开始,提供了一种

privateLookupIn(Class,MethodHandles.Lookup)
尝试
private
获取对另一个类具有访问权限的查找对象的方法。如文档所指定,将根据模块访问规则检查访问,即,必须“允许调用者对目标类进行
深入思考 ”。因此,就模块可访问性而言,仍然需要上述信任的存在。我想,这就是去框架的方法,其中框架管理的代码将向框架开放以支持这种访问。

如果那不可行,那么如果您是类加载器的创建者,则此答案包含一个替代方法。它使用类加载器的API注入一个新类,该类创建查找对象并允许创建者访问它。可以想象有多种变化,包括通过让合成类回调创建者的代码以移交查找对象来确保它的安全,而不是将其存储在每个人都可以阅读的字段中。



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

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

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