美文网首页
空安全:?和!!

空安全:?和!!

作者: Gen哥哥 | 来源:发表于2017-10-11 16:06 被阅读0次

    空安全

    当我们使用Java开发的时候,我们的代码大多是防御性的。如果我们不想遇到NullPointerException,我们就需要在使用它之前不停地去判断它是否为null。Kotlin,如很多现代的语言,是空安全的,因为我们需要通过一个安全调用操作符(写做?)来明确地指定一个对象是否能为空。

    我们可以像这样去写:

    //这里不能通过编译. Artist 不能是null

    varnotNullArtist:Artist=null

    //Artist 可以是 nullvarartist:Artist?=null

    //无法编译, artist可能是null,我们需要进行处理artist.print()

    //只要在artist != null时才会打印artist?.print()//智能转换. 如果我们在之前进行了空检查,则不需要使用安全调用操作符调用

    if(artist!=null) {  artist.print()}

    //只有在确保artist不是null的情况下才能这么调用,否则它会抛出异常artist!!.print()

    //使用Elvis操作符来给定一个在是null的情况下的替代值valname=artist?.name ?:"empty"

    相关文章

      网友评论

          本文标题:空安全:?和!!

          本文链接:https://www.haomeiwen.com/subject/mgpwyxtx.html