User Tools

Site Tools


zh_cn:tutorial:mixin_examples

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
zh_cn:tutorial:mixin_examples [2023/01/29 13:51] – 补充一些内容 hendrix-shenzh_cn:tutorial:mixin_examples [2023/12/18 02:10] – [使用偏移注入到一个方法调用之前] solidblock
Line 12: Line 12:
  
 ===== 在 Mixin 类中获取目标类实例对象 ===== ===== 在 Mixin 类中获取目标类实例对象 =====
 +注意:应该避免像这样两次强转 ''this''。如果你是要使用来自目标来的方法或字段,使用 ''@Shadow''。如果方法或字段是来自目标类的父类,可以直接将你的这个 mixin 继承那个父类。
 Mixin: Mixin:
 <code java> <code java>
Line 18: Line 19:
   @Inject(method = "foo()V", at = @At("HEAD"))   @Inject(method = "foo()V", at = @At("HEAD"))
   private void injected(CallbackInfo ci) {   private void injected(CallbackInfo ci) {
-    ((TargetClass)(Object)this).methodOfTheTargetClass();+    TargetClass thisObject = (TargetClass)(Object)this;
   }   }
 } }
 </code> </code>
- 
 ===== 注入到静态初始化代码块的开头 ===== ===== 注入到静态初始化代码块的开头 =====
 Mixin: Mixin:
Line 143: Line 143:
 </code> </code>
  
-===== 使用偏移注入到一个方法调用之前 =====+===== 使用偏移注入 =====
 Mixin: Mixin:
 <code java> <code java>
zh_cn/tutorial/mixin_examples.txt · Last modified: 2023/12/18 02:19 by solidblock