作家
登录

研究学习Kotlin的一些方法

作者: 来源: 2017-05-10 15:51:18 阅读 我要评论

}, d2={"LAppSettings;""""()V""updateConfig""""production sources for module KotlinObject"}) 
  •   // compiled from: AppSettings.kt 
  • 怎么研究

    • Kotlin和Java都是运行在JVM上,然则实际上JVM并不熟悉Java和Kotlin,因为它只和bytecode(即class文件)打交道。
    • 因而经由过程研究bytecode,我们是可以懂得Kotlin的一些深刻道理的
    • 因为同一份bytecode反编译成java和kotlin文件是等价的,所以将kotlin编译后的class文件反编译成Java,也是具有参考和研究价值的。

    实践办法有哪些

    • 应用Kotlin插件
    • 应用kotlinc,javap等对象

    一些实践

    Null Safe Operator实现道理

    在Java中,我们经常会碰到空指针的问题,Kotlin特意增长了一个空指针安然操作符?。应用起来如下

    1. fun testNullSafeOperator(string: String?) { 
    2.     System.out.println(string?.toCharArray()?.getOrNull(10)?.hashCode()) 

    当我们进行如许的调用时

    1. testNullSafeOperator(null
    2. testNullSafeOperator("12345678901"
    3. testNullSafeOperator("123"

    获得的输出结不雅为

    1. null 
    2. 49 
    3. null 

    大年夜结不雅可见,并没有像Java那样抛出NullPointerException,而是碰到空指针则不持续履行了。

    那么Kotlin的┞封个空指针安然操作符是若何工作的呢,我们可以借助IntelliJ IDE的Kotlin插件来帮助我们研究,步调如下

    • 应用IntelliJ IDE打开一个待研究的Kotlin文件(需确保Kotlin插件已安装)
    • 按照下图依次点击至Show Kotlin Bytecode

    研究进修Kotlin的一些办法

    • 膳绫擎的步调操作后,会获得如许的bytecode
    1. // access flags 0x19 
    2.   public final static testNullSafeOperator(Ljava/lang/String;)V 
    3.     @Lorg/jetbrains/annotations/Nullable;() // invisible, parameter 0 
    4.    L0 
    5.     LINENUMBER 11 L0 
    6.     GETSTATIC java/lang/System.out : Ljava/io/PrintStream; 
    7.     ALOAD 0 
    8.     DUP 
    9.     IFNULL L1   //对string字符串判空 
    10.     INVOKESTATIC kotlin/text/StringsKt.toCharArray (Ljava/lang/String;)[C 
    11.     DUP 
    12.     IFNULL L1  //对CharArray判空 
    13.     BIPUSH 10 
    14.     INVOKESTATIC kotlin/collections/ArraysKt.getOrNull ([CI)Ljava/lang/Character
    15.     DUP 
    16.     IFNULL L1  //对Char判空 
    17.     INVOKEVIRTUAL java/lang/Object.hashCode ()I 
    18.     INVOKESTATIC java/lang/

        推荐阅读

        正在涌现的新型神经网络模型:优于生成对抗网络

      是以,它会让人想起残差前馈收集(residual feed-forward network),但在实际中,强迫这些收集向前传播误差并不克不及让它们在更高财揭捉?习到有效的层次表征。是以,它们不克不及基于更>>>详细阅读


      本文标题:研究学习Kotlin的一些方法

      地址:http://www.17bianji.com/lsqh/35131.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)