- 简单代码
package kotlinTest.extensionmethod
class ExtensionMethodTest {
}
fun String.abc() {
    println("abc")
}
fun main() {
    "a".abc()
}
- 用as 反编译成java 代码之后的结果
// ExtensionMethodTest.java
package kotlinTest.extensionmethod;
import kotlin.Metadata;
@Metadata(
   mv = {1, 6, 0},
   k = 1,
   xi = 2,
   d1 = {"u0000f
u0002u0018u0002
u0002u0010u0000
u0002u0002u0018u00002u00020u0001Bu0005¢u0006u0002u0010u0002¨u0006u0003"},
   d2 = {"LkotlinTest/extensionmethod/ExtensionMethodTest;", "", "()V", "com.free.learn.main"}
)
public final class ExtensionMethodTest {
}
// ExtensionMethodTestKt.java
package kotlinTest.extensionmethod;
import kotlin.Metadata;
import kotlin.jvm.internal.Intrinsics;
import org.jetbrains.annotations.NotNull;
@Metadata(
   mv = {1, 6, 0},
   k = 2,
   xi = 2,
   d1 = {"u0000u000e
u0000
u0002u0010u0002
u0000
u0002u0010u000e
u0000u001au0006u0010u0000u001au00020u0001u001a
u0010u0002u001au00020u0001*u00020u0003¨u0006u0004"},
   d2 = {"main", "", "abc", "", "com.free.learn.main"}
)
public final class ExtensionMethodTestKt {
   public static final void abc(@NotNull String $this$abc) {
      Intrinsics.checkNotNullParameter($this$abc, "$this$abc");
      String var1 = "abc";
      System.out.println(var1);
   }
   public static final void main() {
      abc("a");
   }
   // $FF: synthetic method
   public static void main(String[] var0) {
      main();
   }
}
2、分析
看这是生成了类的一个静态方法,this 当做参数传入
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...
 
                
 
                 
                 
                





 
                