Java怎样更改未命名的按钮名_如何为未命名的模块获取Java 9 ModuleReference

从问题中清除的第一件事是句子中的推断是不正确的 –

for automatic (and therefore unnamed) modules, produced by adding non-module jar files to the classpath

Automatic modules是在模块路径上找到的命名模块.另一方面,the unnamed module是模块系统的成员,该系统支持从类路径加载类型,该类路径的包未在任何已知(命名)模块中定义.

用于加载类型本身的ClassLoader可用于获取Module(未命名).我也试过在How many unnamed modules are created in Java 9?的答案中解释这一点.要链接到precise documentation,还要回答哪个类加载器是未命名的模块?

Every class loader, it turns out, has its own unique unnamed module,

which is returned by the new 07004 method….

ClassLoader cl = getClass().getClassLoader();// returns the class loader for the class

Module yourClassLoaderUnnamedModule = cl.getUnnamedModule();

进一步移动文档增加了获取一个类型的模块加载形式未命名的模块::

.. type is considered to be in that loader’s unnamed module, i.e.,

the 07005 method of the type’s Class object will return its

loader’s unnamed module.

最终相当于:

Module yourClassUnnamedModule = getClass().getModule(); // from the type itself

主要是在访问未命名模块的资源方面,虽然我同意目前没有API可以访问未命名模块的资源等.但是,由于通过此模块加载的Class对象的类型总是来自类路径,因此可以要么获取正在使用的类路径的所有资源,要么相反,您可以检查是否从类路径或模块路径访问正在使用的资源.我能想到的一种方法是使用上述两个功能进行验证:

yourClassLoaderUnnamedModule.equals(yourClassUnnamedModule)//true if resource is loaded via classpath

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值