zoukankan      html  css  js  c++  java
  • Kotlin异常与Java异常的区别及注解详解

    Kotlin异常与Java异常的区别:

    throw的Kotlin中是个表达式,这样我们可以将throw作为Elvis表达式【val test = aa ?: bb,这样的则为Elvis表达式,表示如果?前面的不为null则将前面的aa赋值给test,否则则执行?后面的赋值test】的一部分,下面看下代码:

    呃,有个东东比较奇怪:

    这里要解释一下:throw表达式的类型是一种特殊的类型:Nothing。在自己的代码中,可以使用Nothing来标记永远不会返回的函数。好下面来把程序执行一下:

    比如好理解,接下来咱们将str的值置为null再看下:

    好,还是将str的值还原,继续修改程序:

    而如果咱们将置为null,则结果也可想而知,肯定抛异常了:

    下面来瞅一下Nothing的定义:

    关于Nothing,它还可以这样用“Nothing?”,由于Nothing是代表一个永远都不会返回值,而?表示它可以为null,所以很明显"Nothing?"可以说明是null的一种类型,下面可以验证一下:

    那,下面再来看:

     

    此时它又是啥类型呢?其实是:

    注解(annotation):

    在Kotlin中也是存有注解的,那下面看一下如何来创建一个注解:

    而我们可以利用meta-annotation(元注解)来给注解增加额外的元数据,下面看几个重要的元注解:

    1、@Target:其实跟Java注解类似,用来标识该注解是要写在哪个地方。

    2、@Retention: 保持策略,也就是该注解是在代码中出现,还是运行时上面,还是说在字节码上面:

    接下来咱们来使用一下咱们定义的注解:

    我们知道在Kotlin中有primary constructor和secondary constructor,其中在主构造函数时我们定义时可以这样:

    其实主构造方法是可以有此关键字的:

    而如果想给我们的主构造方法加上注解,此关键字就不能省了,如下:

    如果省掉则会报错:

    其中也可以给属性的getter和setter增加注解,如下:

  • 相关阅读:
    第五周总结
    构建之法阅读笔记02
    第四周总结
    使用HttpClient+Json解析器爬取数据并存入数据库
    构建之法阅读笔记01
    使用Echarts+Javaweb可视化数据库中数据
    Oracle自我补充之trunc()函数使用介绍
    Oracle自我补充之OVER()函数介绍
    SpringMVC详细示例实战教程(较全开发教程)
    eclipse逆向生成hibernate的实体类(注解和配置文件)
  • 原文地址:https://www.cnblogs.com/webor2006/p/11522798.html
Copyright © 2011-2022 走看看