Dirty Quilt Hacks (脏被子修改)
提供了大量反射工具的访问权限。这是一个作为 Quilt 模组构建的小型库,为模组开发者提供了对 `Unsafe`(包括 sun 版本和 jdk 内部版本,假设在编译时导出)的访问,并且轻松支持运行时模块导出和可信的 `MethodHandles.Lookup` 调用。
当前功能
- `Unsafe.sun()` 获取 `sun.misc.Unsafe` 实例
- `Unsafe.jdk()` 获取 `jdk.internal.misc.Unsafe` 实例([需要导出 — 请见下文](#exporting-modules))
- `Unsafe.lookup()` 获取受信任的 `MethodHandles.Lookup` 实例
- 强制字段读取和设置
- 枚举扩展
- 用于允许 JDK 内部 ASM 复制的运行时函数访问器
- 通过受信任的查找快捷方法获取 `MethodHandle` 实例
- 运行时模块导出/开放
- 强制性 SecurityManager 设置
导出模块
在运行时,使用 `ModuleWidener.exportModule`,传入请求包中的类、模块中的类和包字符串,或者模块实例和包字符串。
在编译时,使用 `javac` 编译参数:
groovy
tasks.withType(JavaCompile).configureEach {
it.options.compilerArgs
收录


