版权声明:本文为openXu原创文章【openXu的博客】,未经博主允许不得以任何形式转载 文章目录 1. 异常的本质 1.1 操作系统、程序、JVM、进程、线程 1.2 异常方法调用栈 1.3 java异常处理机制 1.4 小结 2. Android异常处理机制 3. 协程异常 3.1 挂起函数的异常 3.2 throw & resumeWithException(e) 3.3 协程异常导致传递取消 3.4 协程异常传递取消原理 3.4.1 协程异常传递取消 3.4.2 父协程等待所有子协程取消 3.5 …

2021年5月23日 0条评论 4点热度 阅读全文

嵌套类 相当于java中的静态内部类(有static关键字修饰的内部类) 由于相当于Java中的静态内部类,所以不能访问到nameStr变量,但是可以访问另一个嵌套类 //嵌套类 class OutClass1{ private var nameStr:String = " print nameStr" class InnerClass{ fun innerMethod() = "inner method print" } } fun main() { //外部想调用InnerClass的方法,可以直接调用 var…

2021年4月28日 0条评论 2点热度 阅读全文

12.8 编写好用的工具方法 这一章的内容特别容易,一起开始这个轻松的学习之旅吧。 12.8.1 求N个数的最大最小值 定义一个方法,实现求多个整数的最大值。 fun max(vararg nums: Int): Int { var maxNum = Int.MIN_VALUE for (num in nums) { maxNum = max(maxNum, num) } return maxNum } 这样就轻松实现了,写个测试方法来调用。 fun test1() { val a = 10 val b = 15 …

2021年4月21日 0条评论 24点热度 阅读全文

10.6 泛型的高级特性 10.6.1 对泛型进行实化 泛型实化是Kotlin中新引入的概念。 首先我们需要了解一点,所有基于JVM的语言,如Java、Kotlin,它们的泛型功能都是通过类型擦除来实现的。 这种机制使得我们不能使用a is T或者T::class.java这样的语法,因为T的实际类型在运行时已经被擦除了。 然而不同的是,Kotlin提供了内联函数的概念,内联函数中的代码在编译的时候会自动被替换到调用它的地方,这样的话就不存在泛型擦除的问题了,因为代码在编译之后会直接使用实际的类型来替代内联函数中的…

2021年4月16日 0条评论 28点热度 阅读全文

ijkplayer编译 GitHub地址:https://github.com/Bilibili/ijkplayer 最近做新人培训,讲了下编译过程,发现很多人拉不下代码,也编译不过去。我用一台新电脑重新梳理了一个新环境会遇到哪些坑,这里简单记录一下完整的内容和踩过的坑。 1. 环境准备 # install homebrew, git, yasm ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/insta…

2021年4月9日 0条评论 0点热度 阅读全文

Kotlin 对象表达式和对象声明 Kotlin 用对象表达式和对象声明来实现创建一个对某个类做了轻微改动的类的对象,且不需要去声明一个新的子类。 对象表达式 通过对象表达式实现一个匿名内部类的对象用于方法的参数中: window.addMouseListener(object : MouseAdapter() { override fun mouseClicked(e: MouseEvent) { // ... } override fun mouseEntered(e: MouseEvent) { // ...…

2021年3月4日 0条评论 48点热度 阅读全文

属性和字段 属性声明 可以使用 var 关键字声明可变属性,或者用 val 关键字声明只读属性 Getters 和 Setters 声明一个属性的完整语法如下: var <propertyName>: <PropertyType> [ = <property_initializer> ] <getter> <setter> 只读属性的声明语法和可变属性的声明语法相比有两点不同: 它以 val 而不是 var 开头 不允许 setter 函数 var all…

2021年3月2日 0条评论 50点热度 阅读全文

[版权申明] 非商业目的注明出处可自由转载 博文地址:https://blog.csdn.net/ShuSheng0007/article/details/108640462 出自:shusheng007 文章首发于个人博客 文章目录 概述 语法差异 Kotlin中的方法和属性可以不包含在**类**中 Kotlin中语句不需要以`;`结束 Kotlin中数据类型是后置的 Kotlin方法使用`fun`关键字定义 Kotlin的类和方法默认是`public final`的 Kotlin中类继承和接口实现使用`:`标记…

2021年1月16日 0条评论 83点热度 阅读全文

开门见山 inline class作为data class构造参数函数时spring data mongoDb调用save方法时出现ArrayIndexOutOfBoundsException: x的异常 简单粗暴情景描述 原因 结论 对比 简单粗暴情景描述 inline class ProductCode(val value: String) @Document data class Test( val name: ProductCode, val id: String, val age: Int ) mongo…

2020年12月30日 0条评论 64点热度 阅读全文

我正在尝试在Webflux中使用bean验证。这是我到目前为止所拥有的: @PostMapping("contact") fun create(@RequestBody @Valid contact: Mono<Contact>) : Mono<Contact> { return contact.flatMap { contactRepository.save(it) } .doOnError{ Error("test") } } 验证不起作用...我希望会显示 Error("test") …

2020年12月2日 0条评论 74点热度 阅读全文