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 revisionBoth sides next revision
zh_cn:tutorial:mixin_examples [2023/01/29 13:51] – 补充一些内容 hendrix-shenzh_cn:tutorial:mixin_examples [2023/12/18 02:09] – [在 Mixin 类中获取目标类实例对象] 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:
zh_cn/tutorial/mixin_examples.txt · Last modified: 2023/12/18 02:19 by solidblock