Kotlin
Kotlin
jannals
没有失败,只有缓慢的成功
展开
-
Kotlin(十四)之易混淆对比
文章目录AnyNothing与UnitUnitNothingAnyAny是在非空类型层次结构的根,Any?是可空类型层次的根,Any?是Any的超集,Any?是Kotlin类型层次结构的最顶端。fun main() { //true println(1 is Any) //true println(1 is Any?) //false pr...原创 2019-10-22 12:31:04 · 1486 阅读 · 0 评论 -
Kotlin(十三)之Kotlin调用java
文章目录属性方法类型可变参数异常Object静态SAM转换JNI属性Kotlin调用属性本质就是调用getter和setter方法,因此只要java提供setter、getter方法,kotlin就可以直接读取或者写入如果getter方法的返回值类型是boolean,并且该getter方法名以is开头,此时Kotlin会将其当作属性名与getter方法同名的属性,比如boolean i...原创 2019-10-22 12:30:16 · 1375 阅读 · 0 评论 -
Kotlin(十二)之java调用Kotlin
文章目录属性函数实例变量静态变量与静态方法访问控制KClass函数签名冲突重载checked异常泛型属性Kotlin可以自动识别Java中的getter/setter,如果Java类只有一个setter,那么它在Kotlin中不会作为属性可见,因为Kotlin目前不支持只写(set-only)属性在Java中可以过getter/setter操作Kotlin属性。如果属性名以is开头(属...原创 2019-10-22 12:29:37 · 811 阅读 · 0 评论 -
Kotlin(十一)之注解
文章目录定义定义Kotlin不允许注解定义注解体/** * 1. 定义注解,默认情况下,注解可修饰任何程序元素,包括类、接口、属性、方法等 * 2. annotation class相当于定义了一个注解接口,注解接口继承kotlin.Annotation接口 * 3. 注解的属性不能使用可空类型,因为JVM本身不允许使用null作为注解的属性值 * 4. 注解属性值支持 *...原创 2019-10-22 12:28:41 · 193 阅读 · 0 评论 -
Kotlin(十)之反射
文章目录反射获取类信息函数引用创建对象调用方法访问属性绑定的方法与属性引用获取泛型信息反射Kotlin的类引用使用KClass表示,java的类引用对象是Class对象.依赖反射包compile 'org.jetbrains.kotlin:kotlin-reflect:1.3.31'反射API层次结构获取类信息准备数据import kotlin.refl...原创 2019-10-22 12:27:58 · 587 阅读 · 0 评论 -
Kotlin(九)之枚举
文章目录定义方法与属性定义Kotlin使用enum class定义枚举类。枚举类是一种特殊的类,可以有自己的属性、方法、可以实现一个或多个接口,也可以定义构造器使用enum定义的枚举类默认继承kotlin.Enum类,所以枚举类不能显示继承其他父类。kotlin.Enum实现了kotlin.Comparable接口使用enum定义的非抽象的枚举类不能使用open修饰,因此枚...原创 2019-10-22 12:23:46 · 590 阅读 · 0 评论 -
Kotlin(八)之泛型
文章目录入门型变入门型变(Variant)有三种基本形态协变(Covariant): string->object (子类到父类的转换)逆变(Contravariant):object->string (父类到子类的转换)不变(Invariant):基于上面两种情况,不可变对于简单的泛型类、泛型函数与java差不多。Kotlin泛型的是型变支持,kotlin...原创 2019-10-22 12:22:55 · 168 阅读 · 0 评论 -
Kotlin(七)之面向对象(三)
文章目录委托类委托属性委托委托覆写冲突lazy委托委托是java不具备的功能,Kotlin的委托分为类委托和属性委托。类委托类委托是代理模式的应用,类委托的本质就是将本类需要实现的部分方法委托给其他对象,相当于借用其他方法作为自己的实现。当类重写委托对象所包含的方法时,kotlin优先使用该类自己实现的方法类委托案例interface Output { var ...原创 2019-10-22 12:22:00 · 147 阅读 · 0 评论 -
Kotlin(六)之面向对象(二)
文章目录继承多态扩展扩展方法扩展属性final与open继承Kotlin的继承与java一样是单继承,即每个子类最多只能有一个父类修饰符 class 子类名 : 父类名 { }如果在Kotlin类中没有显示指定直接父类,默认继承Any类。Any类是所有类的直接或间接父类。Any类不是java.lang.Object类,Any类只有equals()、hashcode()、...原创 2019-05-21 22:45:17 · 230 阅读 · 0 评论 -
Kotlin(五)之面向对象(一)
文章目录类和对象包和导入访问控制构造方法类中的方法componetN多返回值属性和字段幕后字段幕后属性延迟初始化属性内联属性类和对象定义类的语法[修饰符] class 类名 [constructor 主构造器]{ 0...n 个次构造器 0...n 个属性 0...n 个方法 }修饰符: public internal private protected...原创 2019-05-21 22:44:40 · 233 阅读 · 0 评论 -
Kotlin(四)之函数
文章目录定义形参函数高阶函数Lambda表达式匿名函数内联函数定义定义fun 函数名(形参列表)[:返回值类型]{ }如果没有返回值直接忽略":返回值类型"部分使用":Unit"指定返回Unit代表没有返回值,Kotlin的Unit相当于java的voidfun min(a: Int, b: Int) {}fun min2(a: Int, b: Int...原创 2019-05-21 22:43:45 · 171 阅读 · 0 评论 -
Kotlin(三)之数组与集合
文章目录数组集合数组Kotlin为数组增加一个Array类,基本类型数组增加了XxxArray(Byte Short Int等基本类型)。Kotlin的数组使用Array<T>类表示。Kotlin创建数组其实就是创建Array<T>类的实例创建数组的两种形式使用arrayOf()、arrayOfNulls()、**emptyArray()**工具函数...原创 2019-05-21 22:43:02 · 611 阅读 · 0 评论 -
Kotlin(二)之运算符与表达式
文章目录运算符与表达式区间运算符运算符重载流程控制运算符与表达式kotlin不支持java的三目运算符,使用if表达式代替三目运算符。kotlin的运算符都是以方法形式来实现的,这些运算符都具有特定的符号(如+、*)和固定的优先级。各种运算符对应的方法名都是固定的,我们只要为某类型提供特定名称的方法,成员方法或者扩展方法即可。Kotlin的所有运算符的功能都是广义的,不仅用于数值...原创 2019-05-21 22:42:16 · 2573 阅读 · 0 评论 -
kotlin(一)之基础
文章目录基本语法基本类型null 安全字符串类型类型别名基本语法Kotlin严格区分大小写Kotlin与java不同,Kotlin支持函数式编程,因此只需要一个main函数作为函数入口,main函数不需要放在任何类中。Kotlin源码需要使用Kotlinc或者kotlinc-jvm命令进行编译java语言的多行注释不支持嵌套,而Kotlin的多行注释支持嵌套 ...原创 2019-05-21 22:41:12 · 292 阅读 · 0 评论