Kotlin-泛型—泛型(二十八)
泛型 泛型,即 "参数化类型",将类型参数化,可以用在类,接口,方法上。 与 Java 一样,Kotlin 也提供泛型,为类型安全提供保证,消除类型强转的烦恼。 定义泛型: class Data<…
Mybatis—插入数据后返回自增主键ID
开发过程中我们经常性的会用到许多的中间表,用于数据之间的对应和关联.这个时候我们关联最多的就是ID,我们在一张表中插入数据后级联增加到关联表中.我们熟知的mybatis在插入数据后返回的是插入成功的条…
Kotlin-类型进阶—内联类(二十七)
内联类 有时候,业务逻辑需要围绕某种类型创建包装器。然而,由于额外的堆内存分配问题,它会引入运行时的性能开销。此外,如果被包装的类型是原生类型,性能的损失是很糟糕的,因为原生类型通常在运行时就进行了大…
Kotlin-类型进阶—密封类(二十六)
密封类 密封(Sealed)类是一个限制类层次结构的类。 可以在类名之前使用sealed关键字将类声明为密封类。 它用于表示受限制的类层次结构。 当对象具有来自有限集的类型之一,但不能具有任何其他类型…
Kotlin-类型进阶—枚举类(二十五)
枚举类 枚举类最基本的用法是实现一个类型安全的枚举。 枚举常量用逗号分隔,每个枚举常量都是一个对象。 enum class Color{ RED,BLACK,BLUE,GREEN,WHITE } 每一…
Kotlin-类型进阶—数据类(二十四)
数据类 数据类是一个简单的类,用于保存数据/状态并包含标准功能(函数)。 data关键字用于将类声明为数据类。 data class User(val name: String, val a…
Kotlin-类型进阶—内部类(二十三)
内部类 在kotlin中类内部的class前面不写修饰符默认就是静态内部类,class前面写 inner修饰符才是java中的普通内部类,与java一样,普通内部类会持有外部类的对象引用。 class…
Kotlin-类型进阶—单例(二十二)
单例 单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。 关键点: 一个类只有一个实例 , 这是最基本的它必须自行创建这个实例…
Kotlin-类型进阶—代理(二十一)
接口代理 interface Api { fun a() fun b() fun c() } class ApiImpl : Api { override fun a() {} override fu…
Kotlin-类型进阶—类属性的延迟初始化(二十)
延迟初始化 延迟初始化比较形象的是在java中有一个属性,没有赋值初始化,但是我可以在后面的代码中去初始化。 对于延迟初始化首先可以照搬java的代码,为属性设置 ?. 来使得属性可以为null,但是…
Kotlin-类型进阶—类与成员的可见性(十九)
可见性 与java不同,kotlin中啥也不写,默认就是public的,而java中不写默认是default包内可见kotlin中多一个限制可见性的internal关键字,去掉了default关键字对…
Kotlin-函数进阶—SAM转换(十八)
只有一个抽象方法的接口称为函数式接口或 SAM(单一抽象方法)接口。函数式接口可以有多个非抽象成员,但只能有一个抽象成员。 可以用 fun 修饰符在 Kotlin 中声明一个函数式接口。 fun in…
Kotlin-函数进阶—集合变换和序列(十七)
For 循环遍历 Kotlin for循环用于迭代程序的一部分几次。 它遍历数组,范围,集合或提供迭代的任何内容。 Kotlin for循环等同于C#等语言中的foreach循环。 Kotlin中fo…
Kotlin-函数进阶—内联函数(十六)
内联函数 内联函数使用关键字内联声明,内联函数的使用增强了高阶函数的性能。 内联函数告诉编译器将参数和函数复制到调用站点。 forEash 本身就是一个内联函数因为函数前面有inline,为我们创建了…
Kotlin-函数进阶—高阶函数(十五)
高阶函数 高阶函数(高阶函数)是一个接受函数作为参数或返回函数或可以同时执行这两个函数的函数。 意味着,可以将函数作为参数传递给其他函数,而不是将Int,String或其他类型作为参数传递给函数。 在…
Kotlin-表达式—Lambda表达式(十四)
Kotlin 函数都是头等的,这意味着它们可以存储在变量与数据结构中、作为参数传递给其他高阶函数以及从其他高阶函数返回。可以像操作任何其他非函数值一样操作函数。 为促成这点,作为一门静态类型编程语言的…
Java—实现判断一个经纬度坐标是否在一个多边形内
创建一个实体类:Point public class Point { private Double x; private Double y; public Point (Double x , Doub…
Kotlin-表达式—运算符与中缀表达式(十三)
Kotlin 运算符重载 在Kotlin中使用operator时,将调用它的相应成员函数。 例如,表达式a + b在后台转换为a.plus(b)。 fun main(args: Array<St…
Kotlin-表达式—分支表达式(十二)
if 表达式 在Kotlin中,if表达式返回一个值。它用于控制程序结构的流程。 在Kotlin中有各种类型的if表达式。 if-else表达式if-else if-else阶梯表达式嵌套if表达式 …
Kotlin-表达式—变量与常量(十一)
变量声明 在Kotlin中,使用关键字var和val来声明变量。 var language ="Java" val salary = 30000 val author = "maxsu" 关键字 va…
Kotlin-类型初步—智能类型转换(十)
要使用可空类型,可以选择使用智能强制转换。 智能转换是Kotlin编译器跟踪if表达式内部条件的功能。 如果编译器发现变量可null类型的null值,则编译器将允许访问此变量。 尝试在没有安全转换的情…
Kotlin-类型初步—空类型安全(九)
空指针 Kotlin 的类型系统旨在消除来自代码空引用的危险,也称为《十亿美元的错误》。 许多编程语言(包括 Java)中最常见的陷阱之一是访问空引用的成员,导致空引用异常。在 Java 中,这等同于…
Kotlin-类型初步—扩展方法(八)
扩展函数 Kotlin与C#和Go类似,提供了扩展一个新功能的类,而不必继承类或使用任何类型的设计模式。 这是通过称为扩展名的特殊声明完成的。 Kotlin支持扩展功能和扩展属性。 您需要在Strin…
Kotlin-类型初步—类和接口(七)
类 Kotlin中的类是使用class关键字来声明: class Invoice { } 类声明由类名,类头(指定类型参数,主构造函数等)和类体组成,由大括号括起来。类头和类主体都是可选的; 如果类没…
Kotlin-内置类型—函数(六)
Kotlin 中的函数使用 fun{: .keyword } 关键字声明 函数定义 fun double(x: Int): Int { } fun yy(p: (Foo, String, L…
Kotlin-内置类型—集合框架(五)
集合通常包含相同类型的一些(数目也可以为零)对象。集合中的对象称为元素或条目。例如,一个系的所有学生组成一个集合,可以用于计算他们的平均年龄。 以下是 Kotlin 相关的集合类型: List&nbs…
Kotlin-内置类型—区间(四)
区间(或叫作范围)表达式由具有操作符形式 .. 的 rangeTo 函数辅以 in{: .keyword } 和 !in{: .keywor…
Kotlin-内置类型—数组(三)
java和kotlin的数组还是有一定的区别的。 数组在 Kotlin 中使用 Array 类来表示,它定义了 get 与 set 函数(按照运算符重载约定这会转变为 [])以及 size 属性,以及…
Kotlin-内置类型—基本类型(二)
kotlin的基本类型与java的基本类型区别不大。 基本类型 var 与 val var a = 2 val b = "Hello Kotlin" 声明变量 声明变量时变量的类型可写可不写,建议还是…
ElasticSearch—映射模版(十三)
动态模板允许你定义可以用于动态添加的字段的自定义映射: 由Elasticsearch中的match_mapping_type检测到数据类型。字段的名称可以是match(匹配)和unmatch(不匹配)…