- 简单代码
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 当做参数传入
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...




