0%

kotlin

1. 常用技巧

  • 声明 class 时, 把非空参数都放在默认构造器中, 可空字段放在属性中
    但如果是 web 应用中的 接收参数对象, 则不能这样做, 必须是先把参数置为可空, 然后再加上验证注解 @NotNull. 因为 json 解析在 注解验证之前

  • 组装参数类型的代码可以使用 DSL, 看起来更直观

  • 对于 jackson 处理 json, 需要引入 jackson-module-kotlin 来支持 kotlin 的 class 与 data class 的序列化与反序列化.

  • 如果 lambda 函数有嵌套, 外层函数应该指定函数签名

  • 对于尾递归函数, 使用 tailrec 修饰, 会对递归函数做优化, 避免栈溢出

2. 官方文档比较重要的章节

3. 实用方法

  • measureTimeMillis(block: () -> Unit): Long
    返回代码块执行所需时间

  • check | checkNotNull
    throw IllegalStateException

  • require | requireNotNull
    throw IllegalArgumentException

  • error
    IllegalStateException

4. 其他

4.1. 协程调试

-Dkotlinx.coroutines.debug=on

5. Resources