zh_cn:tutorial:accesswideners
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
zh_cn:tutorial:accesswideners [2021/10/25 10:05] – [文件格式] solidblock | zh_cn:tutorial:accesswideners [2021/10/25 10:14] (current) – [Access Wideners] solidblock | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== | + | ====== |
- | Access wideners(访问加宽)提供了一种放宽类、方法、字段访问权限的方式。Access wideners | + | 访问加宽(Access wideners)提供了一种放宽类、方法、字段访问权限的方式。访问加宽类似于著名的 Access Transformers. |
- | Access wideners | + | 访问加宽应该**仅在**使用 Mixin 无法实现时使用。目前只有以下两种情景 Mixin 无法做到: |
* 需要访问一个(包内)的私有类,尤其是为了 @Shadow 修饰或在 Mixin 类内访问一个字段或方法。 | * 需要访问一个(包内)的私有类,尤其是为了 @Shadow 修饰或在 Mixin 类内访问一个字段或方法。 | ||
* 需要重写使用 final 修饰的子类。 | * 需要重写使用 final 修饰的子类。 | ||
Line 75: | Line 75: | ||
- fieldDesc 是字段描述符 | - fieldDesc 是字段描述符 | ||
- | ===== Access Changes | + | ===== 访问权变更 |
- | === Extendable === | + | === Extendable(可继承) |
- | Extendable should be used where you want to extend a class or override a method. | + | 需要继承最终类或者覆盖最终方法时,用 extendable。 |
- | * Classes are made public | + | * 类将会改成 |
- | * Methods are made protected | + | * 方法会改成 |
- | Making a method | + | 将方法改为 |
- | === Accessible === | + | === Accessible(可访问) |
- | Accessible should be used when you want to access a class, field or method from another class. | + | 需要访问另一个类的类、字段或方法时,用 accessible。 |
- | * Classes are made public | + | * 类将变为 |
- | * Methods are made public | + | * 方法将变为 |
- | * Fields are made public | + | * 字段将会变为 |
- | Making a method or field accessible | + | 将方法或者字段改为 |
- | === Mutable === | + | === Mutable(可修改) |
- | Mutable should be used when you want to mutate a final field | + | 需要修改常量字段时,用 mutable。 |
- | * Fields have final removed | + | * 字段将会移除 |
- | ===== Specifying file location | + | ===== 指定文件位置 |
- | The access widener file location must be specified in your build.gradle | + | 访问加宽文件位置必须在 |
- | Loom 0.9 or higher: | + | Loom 0.9 或更高版本: |
<code groovy [enable_line_numbers=" | <code groovy [enable_line_numbers=" | ||
Line 114: | Line 114: | ||
</ | </ | ||
- | Loom 0.8 or lower: | + | Loom 0.8 或更低版本: |
<code groovy [enable_line_numbers=" | <code groovy [enable_line_numbers=" | ||
Line 122: | Line 122: | ||
</ | </ | ||
- | fabric.mod.json: | + | fabric.mod.json: |
<code json [enable_line_numbers=" | <code json [enable_line_numbers=" |
zh_cn/tutorial/accesswideners.1635156335.txt.gz · Last modified: 2021/10/25 10:05 by solidblock