Kotlin泛型、注解和异常
Kotlin 泛型 泛型类型参数 类型形参,如 List <> 里的 T 叫 类型形参 类型实参,List,String 叫 类型实参 泛型允许你定义带类型形参的类型,当这种类型的实例被创建出来的时候,类型形参被替换成称为类型实参的具体类型。 正常情况下,编译器可以推导出你创建的类型。但你想创建一个空的列表,这样就没有任何可以推导出类型实参...
Kotlin 泛型 泛型类型参数 类型形参,如 List <> 里的 T 叫 类型形参 类型实参,List,String 叫 类型实参 泛型允许你定义带类型形参的类型,当这种类型的实例被创建出来的时候,类型形参被替换成称为类型实参的具体类型。 正常情况下,编译器可以推导出你创建的类型。但你想创建一个空的列表,这样就没有任何可以推导出类型实参...
Kotlin 与 Java Java 调用 Kotlin 属性 Kotlin 属性编译为以下 Java 元素: 一个 getter 方法, 方法名由属性名加上 get 前缀得到 一个 setter 方法, 方法名由属性名加上 set 前缀得到 (只会为 var 属性生成设值方法); 一个私有的域变量, 名称与属性名相同 (只会为拥有后端域变量的属性生成域变量) 如果...
kotlin 中数组声明和元素操作 数组声明 Kotlin 的基本数组类型 数组类型的名称 数组类型的初始化方法 整型类型 IntArray intArrayOf 长整型类型 LongArray longArra...
变量和常量 常见变量类型及变量的取值范围变量用 var 关键字声明,常见的数据类型如下:Byte、Short、Int、Long、Float、Double、String、Boolean 数据类型 取值范围 备注 Byte -128~127 8bit ...
Reflection(官方文档) Kotlin 反射基础 Kotlin 反射和 Java 反射 Kotlin 反射类图:Java 反射类图:Kotlin 和 Java 的对比: Kotlin 的反射类都是基于 KAnnotatedElement, 而 Java 的反射类都是基于 AnnotateElement; Kotlin 的 KCallable 和 Java 的 ...
Kotlin 普通函数 Kotlin 函数的声明和调用 main 函数 main 函数式 kotlin 程序的入口函数,它是计算机运行起来第一个默认找到第一个运行的函数。 标准函数格式 用关键字 fun 声明 // 函数声明 fun 函数名(参数名:参数类型):返回值类型{ 函数体 } // 示例 fun main(args: Array<String>) ...
Kotlin DSL 如何实现 DSL 高阶函数实现大括号调用 常见的 DSL 都会用大括号来表现层级。Kotlin 的高阶函数允许指定一个 lambda 类型的参数,且当 lambda 位于参数列表的最后位置时可以省略圆括号,满足 DSL 中的大括号语法要求。 // 原有代码: LinearLayout(context).apply { orientation = Line...
Kotlin 协程 协程是什么?kotlinx.coroutines 是什么? 协程 (Coroutines) 是一个新的概念,但是协程这个术语早在 1958 年就被提出并用于构建汇编程序,协程是一种编程思想,并不局限于特定的语言,就像 Rx 也是一种思想,并不局限于使用 Java 实现的 RxJava。不同语言实现的协程库可能名称或者使用上有所不同,但它们的设计思想是有相似之处的。ko...
协程原理 suspend 原理 suspend 方法 示例代码: suspend fun susFun() { delay(100) println("hello suspend function.") } 反编译后: public static final Object susFun(Continuation<? super kotlin.Unit>...
Android 中协程 MainScope 作用域内协程都调度在主线程,除非明确声明了调度器 异常传播是自上而下的,出现异常,不会整个 scope 都异常了,其他的协程体可以继续执行 public fun MainScope(): CoroutineScope = ContextScope(SupervisorJob() + Dispatchers.Main) Main...