Kotlin
文章平均质量分 79
韩曙亮
中国人民大学硕士 , 专注于 移动开发 领域 , 博客专家 , 2023 年博客之星 TOP1 , 2021 年博客之星 TOP9 , 华为云 云享专家 , 阿里云社区 专家博主 , 51CTO 专家博主 ;
展开
-
【Kotlin】ArrayList 排序分析 ( Kotlin 与 Java 中的 ArrayList | sortBy 函数 | sortWith 函数 | crossinline 关键字分析 )
一、ArrayList 排序1、Kotlin 与 Java 中的 ArrayList2、Kotlin 中 ArrayList 元素排序 - sortBy 函数3、sortBy 函数解析4、倒序排列 - sortByDescending 函数5、sortByDescending 函数分析6、sortWith 函数分析7、sortWith 函数分析8、compareBy 函数分析二、crossinline 关键字分析1、内联函数 crossinline 参数2、内联函数不使用 crossi原创 2024-10-24 02:15:00 · 1298 阅读 · 2 评论 -
【错误记录】Kotlin 中 Lambda 表达式返回值报错 ( ‘return‘ is not allowed here | 匿名内部类 | 尾随 Lambda 规范 - Lambda 替换接口 )
一、错误记录二、问题分析1、匿名内部类2、尾随 Lambda 规范 - Lambda 替换接口3、Lambda 表达式中 return 需要 @ 标签三、解决方案原创 2024-04-15 16:28:38 · 1610 阅读 · 12 评论 -
【Kotlin】Kotlin 中使用 Lambda 表达式替代对象表达式原理分析 ( 尾随 Lambda - Trailing Lambda 语法 | 接口对象表达式 = 接口#函数类型对象 )
一、尾随 Lambda - Trailing Lambda 语法二、Kotlin 中使用 Lambda 表达式替代对象表达式原理1、Lambda 替换对象表达式2、原理分析3、示例分析原创 2023-03-14 13:41:59 · 1524 阅读 · 23 评论 -
【Kotlin】:: 双冒号操作符详解 ( 获取类的引用 | 获取对象类型的引用 | 获取函数的引用 | 获取属性的引用 | Java 中的 Class 与 Kotlin 中的 KClass )
一、:: 双冒号操作符1、获取类的引用引用类型 KClass 说明2、获取对象类型的引用3、获取函数的引用4、获取属性的引用二、 java.lang.Class 与 kotlin.reflect.KClass原创 2023-03-02 08:53:07 · 1751 阅读 · 21 评论 -
【Kotlin】Kotlin 与 Java 互操作 ③ ( Kotlin 中处理 Java 异常 | Java 中处理 Kotlin 异常 | @Throws 注解处理异常 | 函数类型互相操作 )
一、Kotlin 中处理 Java 异常1、Java 中异常操作2、Kotlin 中调用 Java 抛出异常函数3、分析 Kotlin 字节码信息4、Kotlin 中捕获异常二、Java 中处理 Kotlin 异常1、Kotlin 方法中抛出异常处理2、Java 中调用 Kotlin 异常方法3、使用 @Throws 注解注明异常三、Kotlin 与 Java 之间的函数类型互操作1、Java 调用 Kotlin 中的 匿名函数解决方案2、Kotlin 中 匿名函数代码示例原创 2023-02-23 08:53:53 · 7328 阅读 · 48 评论 -
【Kotlin】Kotlin 与 Java 互操作 ② ( @JvmField 注解字段给 Java | @JvmOverloads 注解修饰函数 | @JvmStatic 注解声明静态成员 )
一、使用 @JvmField 注解暴露 Kotlin 字段给 Java1、Java 类中通过 Getter 和 Setter 方法访问 Kotlin 字段2、Java 类中直接访问被 @JvmField 注解修饰的 Kotlin 字段二、使用 @JvmOverloads 注解修饰 Kotlin 函数1、Kotlin 默认参数函数调用示例2、Java 中调用 Kotlin 默认参数函数三、使用 @JvmStatic 注解声明静态成员1、Java 正常访问 Kotlin 伴生对象成员原创 2023-02-20 09:00:28 · 12901 阅读 · 100 评论 -
【Kotlin】Kotlin 与 Java 互操作 ① ( 变量可空性 | Kotlin 类型映射 | Kotlin 访问私有属性 | Java 调用 Kotlin 函数 )
一、Kotlin 变量可空性1、Java 与 Kotlin 空值处理区别2、Java 函数返回非空值和控制3、Kotlin 函数调用 Java 函数4、平台类型5、@NotNull 和 @Nullable 注解二、Kotlin 的 Java 类型映射三、Kotlin 访问 Java 私有属性四、Java 调用 Kotlin 函数1、函数调用2、分析 Kotlin 代码生成的字节码数据3、使用 @JvmName 注解修改 Kotlin 生成的 Java 类名原创 2023-02-16 14:06:22 · 10738 阅读 · 88 评论 -
【Kotlin】函数式编程 ③ ( 早集合与惰性集合 | 惰性集合-序列 | generateSequence 序列创建函数 | 序列代码示例 | take 扩展函数分析 )
一、及早集合与惰性集合二、惰性集合-序列三、generateSequence 序列创建函数1、函数简介2、函数原型3、函数简介4、使用示例四、序列代码示例1、使用传统的函数式编程实现2、使用序列 Sequence 实现3、take 扩展函数分析原创 2023-02-13 10:46:40 · 13160 阅读 · 104 评论 -
【Kotlin】函数式编程 ② ( 过滤函数 | predicate 谓词函数 | filter 过滤函数 | 合并函数 | zip 函数 | folder 函数 | 函数式编程意义 )
一、过滤函数、二、filter 函数原型、三、filter 过滤函数代码示例、1、filter 函数简单示例、2、filter 过滤函数与 flatMap 变换函数 组合使用示例、3、filter 过滤函数与 map 变换函数 组合使用示例、四、合并函数、1、zip 合并函数、2、folder 合并函数、五、函数式编程意义、原创 2023-02-07 16:05:50 · 14856 阅读 · 108 评论 -
【Kotlin】函数式编程 ① ( 函数式编程简介 | 高阶函数 | 函数类别 | Transform 变换函数 | 过滤函数 | 合并函数 | map 变换函数 | flatMap 变换函数 )
一、函数式编程简介、1、编程范式、2、高阶函数、3、函数式编程、4、前端开发技术、二、函数类别、三、变换函数、四、map 变换函数、1、map 函数原型分析、2、map 函数设计理念、3、代码示例、五、flatMap 变换函数、1、flatMap 函数原型分析、2、代码示例、原创 2023-02-04 13:59:25 · 12407 阅读 · 94 评论 -
【Kotlin】DSL 领域特定语言 ( apply 标准库函数分析 | 普通匿名函数 | 扩展匿名函数 | 泛型扩展匿名函数 )
一、apply 标准库函数分析、1、apply 函数展示、2、apply 函数原型分析、函数原型、参数和返回值分析、3、匿名函数类型分析、4、扩展函数回顾、5、泛型扩展函数函数类型、6、泛型扩展匿名函数、7、apply 标准库函数参数分析、泛型扩展函数匿名函数 与 普通匿名函数 对比、apply 函数参数不是泛型扩展函数类型的假设、二、代码示例、原创 2023-02-01 11:16:09 · 6766 阅读 · 75 评论 -
【Kotlin】泛型总结 ★ ( 泛型类 | 泛型参数 | 泛型函数 | 多泛型参数 | 泛型类型约束 | 可变参数结合泛型 | out 协变 | in 逆变 | reified 检查泛型参数类型 )
一、泛型类、二、泛型参数、三、泛型函数、四、多泛型参数、五、泛型类型约束、六、可变参数 vararg 关键字与泛型结合使用、七、使用 [] 运算符获取指定可变参数对象、八、泛型 out 协变、九、泛型 in 逆变、十、泛型 invariant 不变、十一、泛型逆变协变代码示例、十二、使用 reified 关键字检查泛型参数类型原创 2023-02-01 04:15:00 · 841 阅读 · 6 评论 -
【Kotlin】扩展函数总结 ★ ( 超类扩展函数 | 私有扩展函数 | 泛型扩展函数 | 扩展属性 | 定义扩展文件 | infix 关键字用法 | 重命名扩展函数 | 标准库扩展函数 )
一、扩展函数简介、二、为 Any 超类定义扩展函数、三、private 私有扩展函数、四、泛型扩展函数、五、标准函数 let 函数是泛型扩展函数、六、扩展属性、七、可空类扩展、八、使用 infix 关键字修饰单个参数扩展函数的简略写法、九、定义扩展文件、十、重命名扩展函数、十一、Kotlin 标准库扩展函数原创 2023-01-31 23:42:10 · 1544 阅读 · 2 评论 -
【Kotlin】扩展函数 ② ( 扩展属性 | 为可空类型定义扩展函数 | 使用 infix 关键字修饰单个参数扩展函数的简略写法 )
一、扩展属性、二、可空类扩展、三、使用 infix 关键字修饰单个参数扩展函数的简略写法原创 2023-01-25 21:50:34 · 971 阅读 · 1 评论 -
【Kotlin】扩展函数 ③ ( 定义扩展文件 | 重命名扩展函数 | Kotlin 标准库扩展函数 )
一、定义扩展文件、二、重命名扩展函数、三、Kotlin 标准库扩展函数原创 2023-01-25 21:57:21 · 1237 阅读 · 3 评论 -
【Kotlin】泛型 ② ( 可变参数 vararg 关键字与泛型结合使用 | 使用 [] 运算符获取指定可变参数对象 )
一、可变参数 vararg 关键字与泛型结合使用、二、使用 [] 运算符获取指定可变参数对象原创 2023-01-23 22:14:37 · 1528 阅读 · 1 评论 -
【Kotlin】扩展函数 ① ( 扩展函数简介 | 为 Any 超类定义扩展函数 | private 私有扩展函数 | 泛型扩展函数 | 标准函数 let 函数是泛型扩展函数 )
一、扩展函数简介、二、为 Any 超类定义扩展函数、三、private 私有扩展函数、四、泛型扩展函数、五、标准函数 let 函数是泛型扩展函数原创 2023-01-24 16:40:48 · 6759 阅读 · 63 评论 -
【Kotlin】泛型 ③ ( 泛型 out 协变 | 泛型 in 逆变 | 泛型 invariant 不变 | 泛型逆变协变代码示例 | 使用 reified 关键字检查泛型参数类型 )
一、泛型 out 协变、二、泛型 in 逆变、三、泛型 invariant 不变、四、泛型逆变协变代码示例、五、使用 reified 关键字检查泛型参数类型原创 2023-01-23 23:13:48 · 616 阅读 · 4 评论 -
【Kotlin】泛型 ① ( 泛型类 | 泛型参数 | 泛型函数 | 多泛型参数 | 泛型类型约束 )
一、泛型类、二、泛型参数、三、泛型函数、四、多泛型参数、五、泛型类型约束原创 2023-01-23 12:06:02 · 1491 阅读 · 1 评论 -
【Kotlin】接口和抽象类 ( 接口属性和方法定义 | 接口默认方法实现 | 抽象类 )
一、接口属性和方法定义、二、接口默认方法实现、三、抽象类原创 2023-01-21 13:30:29 · 5586 阅读 · 43 评论 -
【Kotlin】常用的 Kotlin 类 ② ( 枚举类 | 枚举类定义函数 | 密封类 )
一、枚举类、二、枚举类定义函数、1、枚举类定义普通函数、2、枚举类定义构造函数、三、密封类、原创 2023-01-19 21:06:51 · 1220 阅读 · 3 评论 -
【Kotlin】常用的 Kotlin 类 ① ( 嵌套类 | 数据类 | 数据类 copy 函数 | 数据类解构声明 operator fun component1 | 数据类运算符重载 )
一、嵌套类、二、数据类、三、数据类 copy 函数、四、数据类解构声明、1、Kotlin 普通类解构声明 operator fun component1、2、数据类解构声明、五、运算符重载函数、原创 2023-01-19 21:06:15 · 719 阅读 · 0 评论 -
【Kotlin】object 对象 ( object 关键字 | 对象声明 | 对象表达式 | 伴生对象 )
一、object 关键字、二、对象声明、三、对象表达式、四、伴生对象、原创 2023-01-19 21:05:39 · 1217 阅读 · 0 评论 -
【Kotlin】类的继承 ② ( 使用 is 运算符进行类型检测 | 使用 as 运算符进行类型转换 | 智能类型转换 | Any 超类 )
一、使用 is 运算符进行类型检测、二、使用 as 运算符进行类型转换 ( 智能类型转换 )、三、Any 超类原创 2023-01-18 18:02:57 · 9277 阅读 · 79 评论 -
【Kotlin】类的继承 ① ( 使用 open 关键字开启类的继承 | 使用 open 关键字开启方法重写 )
一、使用 open 关键字开启类的继承、二、使用 open 关键字开启方法重写原创 2023-01-18 16:43:26 · 2196 阅读 · 0 评论 -
【错误记录】Kotlin 代码运行时报错 ( 成员属性初始化顺序是按照从上到下顺序进行的 , 上面的属性不要调用下面未进行初始化的属性 )
一、报错信息、二、问题分析、三、解决方案原创 2023-01-18 15:12:28 · 426 阅读 · 0 评论 -
【错误记录】Kotlin 代码运行时报错 ( 在 init 初始化块中调用还未初始化的成员属性 )
一、报错信息、二、问题分析、三、解决方案、该问题的本质就是 , 成员属性 在 init 初始化代码块中进行初始化 , 但是在初始化之前调用了该 成员属性 , 编译时没有报错信息 , 但是运行时会报异常 ;原创 2023-01-18 14:04:20 · 844 阅读 · 0 评论 -
【错误记录】Kotlin 代码编译时报错 ( Variable ‘name‘ must be initialized | 初始化块定义在所有属性之后 )
一、报错信息、二、问题分析、三、解决方案 ( 初始化块定义在所有属性之后 )原创 2023-01-18 11:42:39 · 1634 阅读 · 2 评论 -
【Kotlin】类的初始化 ④ ( lateinit 延迟初始化 | ::属性名称.isInitialized 检查属性是否初始化 | lazy 惰性初始化 )
一、lateinit 延迟初始化 ( ::属性名称.isInitialized 检查属性是否初始化 )、二、lazy 惰性初始化原创 2023-01-18 11:12:14 · 1634 阅读 · 2 评论 -
【Kotlin】类的初始化 ③ ( init 初始化块 | 初始化顺序 : 主构造函数属性赋值 -> 类属性赋值 -> init 初始化块代码 -> 次构造函数代码 )
一、init 初始化块二、初始化顺序原创 2023-01-18 10:35:16 · 2004 阅读 · 0 评论 -
【Kotlin】类的初始化 ② ( 主构造函数 | 主构造函数定义临时变量 | 主构造函数中定义成员属性 | 次构造函数 | 构造函数默认参数 )
一、主构造函数定义临时变量、二、主构造函数中定义成员属性、三、次构造函数、四、构造函数默认参数原创 2023-01-17 23:15:58 · 895 阅读 · 1 评论 -
【Kotlin】集合操作总结 ( List 集合 | MutableList 集合 | List 集合遍历 | Set 集合 | MutableSet 集合 | Map 集合 | 可变 Map集合 )
一、List 创建与元素获取、二、安全获取集合元素、三、List 创建与元素获取代码示例、四、MutableList 可变列表集合、五、修改 MutableList 集合的 mutator 函数、六、List 集合遍历、七、List 通过解构一次性给多个元素赋值、八、Set 集合、九、可变 Set 集合、十、List 与 Set 之间相互转换、十一、数组类型、十二、Map 集合、十三、获取 Map 值、十四、Map 遍历、十五、可变 Map 集合、原创 2023-01-17 16:20:53 · 8868 阅读 · 23 评论 -
【Kotlin】类的初始化 ① ( 成员属性 | Kotlin 自动为成员字段生成 getter 和 setter 方法 | 手动设置成员的 getter 和 setter 方法 | 计算属性 )
一、Kotlin 自动为成员字段生成 getter 和 setter 方法、二、手动设置成员的 getter 和 setter 方法、三、计算属性原创 2023-01-17 22:41:10 · 1062 阅读 · 1 评论 -
【Kotlin】集合操作 ⑤ ( Map 集合 | 获取 Map 值 | Map 遍历 | 可变 Map 集合 )
一、Map 集合、二、获取 Map 值、三、Map 遍历、四、可变 Map 集合原创 2023-01-17 11:49:07 · 3024 阅读 · 3 评论 -
【Kotlin】集合操作 ④ ( Set 集合 | 可变 Set 集合 | List 与 Set 之间相互转换 | 数组类型 )
一、Set 集合、二、可变 Set 集合、三、List 与 Set 之间相互转换、四、数组类型原创 2023-01-17 10:40:42 · 793 阅读 · 1 评论 -
【Kotlin】集合操作 ③ ( List 集合遍历 | for in | forEach | forEachIndexed | List 通过解构一次性给多个元素赋值 )
一、List 集合遍历二、List 通过解构一次性给多个元素赋值原创 2023-01-16 21:44:12 · 4381 阅读 · 2 评论 -
【Kotlin】集合操作 ② ( MutableList 可变列表集合 | 修改 MutableList 集合的 mutator 函数 )
一、MutableList 可变列表集合、二、修改 MutableList 集合的 mutator 函数、1、添加元素运算符 += 和 删除元素运算符 -=、2、通过 Lambda 表达式筛选要删除的元素、原创 2023-01-16 20:59:06 · 2108 阅读 · 5 评论 -
【Kotlin】集合操作 ① ( List 创建与元素获取 | 安全获取集合元素 | getOrElse | getOrNull )
一、List 创建与元素获取、二、安全获取集合元素、1、getOrElse 函数、2、getOrNull函数、三、List 创建与元素获取代码示例原创 2023-01-15 22:24:08 · 639 阅读 · 0 评论 -
【Kotlin】标准库函数总结 ( apply 函数 | let 函数 | run 函数 | with 函数 | also 函数 | takeIf 函数 | takeUnless 函数 )
一、apply 标准库函数、二、let 标准库函数、三、run 标准库函数、1、run 函数传入 Lambda 表达式作为参数、2、run 函数传入函数引用作为参数、四、with 标准库函数、五、also 标准库函数、六、takeIf 标准库函数、七、takeUnless 标准库函数、原创 2023-01-11 10:35:26 · 21784 阅读 · 130 评论 -
【Kotlin】标准库函数 ④ ( takeIf 标准库函数 | takeUnless 标准库函数 )
一、takeIf 标准库函数二、takeUnless 标准库函数原创 2023-01-11 10:21:37 · 1217 阅读 · 2 评论