创建一个高阶函数,接受一个Lambda表达式作为参数,反编译之后的Java代码为 publicfinalclassInline{publicfinalvoidmap(intsize,@NotNullFunction1fn){Intrinsics.checkNotNullParameter(fn,"fn");Stringvar3=String.valueOf(((Number)fn.invoke(size)).intValue());System.out.println(var3);}}publicstaticfinalvoidm...
public static final void main(@NotNull String[] array) { launchFish((Function1)(new Function1((Continuation)null) { int label; @Nullable public final Object invokeSuspend(@NotNull Object var1) { Object var4 = IntrinsicsKt.getCOROUTINE_SUSPENDED(); switch(this.label) { case 0: //闭包里...
咱们创建了一个对象声明DataManager,它有一个const常量,一个常量和一个方法,对象声明不允许有构造方法,这个对象声明反编译为Java代码是这样的 publicfinalclassDataManager{privatestaticfinalStringTAG="DataManager";@NullableprivatestaticfinalStringdata;@NotNullpublicstaticfinalDataManagerINSTANCE;@NullablepublicfinalString...
publicfinalclassUser{privatefinal int male;privatestaticfinal intMALE=0;publicstaticfinal User.Companion Companion=newUser.Companion((DefaultConstructorMarker)null);publicfinal intgetMale(){returnthis.male;}publicUser(int male){this.male=male;}publicstaticfinalclassCompanion{publicfinal intgetMALE(){retur...
public static final OneObject INSTANCE; @NotNull public final String getTAG() { return TAG; } public final void foo() { String var1 = TAG; boolean var2 = false; System.out.println(var1); } private OneObject() { } static {
publicstaticfinalvoidfoo(@NotNull Lock l) { System.out.println("before sync"); l.lock();try{intvar2 =false; System.out.println("Action"); }finally{ l.unlock(); } System.out.println("after sync"); } 如上所述,直接将synchronized 替换到了foo本地 ...
public final class Util { @JvmField public int age = 1; } 1. 2. 3. 4. 通过前后对比,我们可以得出结论 JvmField 注解可以消除 get / set 方法 JvmField 注解是的属性以 public 的形式对外暴露 @JvmStatic 只能在object类或者伴生对象companion object中使用,而@JvmField没有这些限制 ...
public final class JvmLang extends Enum{private JvmLang(String s,int i){super(s,i);public static final JvmLang Java;public static final JvmLang Kotlin;public static final JvmLang Scala;static{Java = new Action("Java",0);Kotlin = new Action("Kotlin",1);Scala = new Action("Scala",2)...
public static final void saySome() { String var0 = "说些什么"; boolean var1 = false; System.out.println(var0); } } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ...
publicclassUtils{ staticStringformat(String text){ returntext.isEmpty() ?null: text; } } 假如你想调用 format(String)。应该使用哪种类型来获得这个 Java 方法的结果呢?你有三个选择。 第一种方法:你可以使用 String,代码看起来很安全,但是会抛出 NullPointerException 异常。