我们之前有讲数据类,也就是data,他的角色充当我们的JavaBean,比如我们的列表就经常会使用到,但是data修饰的class,有一个问题就是,无法实现一个空的构造参数,我们看下他的提示: 可以看到,如果我们不传递参数,则会提示我们必须要传递一个参数,也就是这样的实现 但是我们有时候有一些需求是不需要构造函数中有参数的,...
哈哈,感谢回答,无参构造函数不是我想要的,这里mybatis需要的是一个有两个long类型参数的构造函数,已经找到解决办法了。添加一个两个long参数的二级构造函数就好了,具体代码是这样的: data class Child( var stuId: Long, var schoolId: Long, var stuName: String = "", var stuAvatar: String = "" ) {...
} 也就是我们传进来要转换的结果class,gson通过默认构造函数构造了一个Person对象,通过遍历field,并进行一一匹配填充,而没有读取到的初始值为空,所以我们在data class中赋的值没有意义了~ 构造器.jpg log.jpg 看一下Kotlin的构造器问题 默认构造.jpg 也就是说,我们赋的默认值失去了意义~ 其实也没啥,就是记录...
data class Person(val name: String, val age: Int) { constructor(name: String) : this(name, 0) constructor(age: Int) : this("", age) } ``` 这个例子中,有三个构造函数:主构造函数接受一个name和age参数,次构造函数只接受一个name参数,并调用了主构造函数来设置age属性的默认值为0,还有一个次...
• 函数字面量和内联函数(Function literals & inline functions) • 类委托(Class delegation) • 等等... 基本语法 (Basic Syntax ) •变量(Variables) •基本数据类型( Basic Data Type ) •空安全(Null Safety ) •函数声明( Define Function ) •让...
函数字面量和内联函数(Function literals & inline functions) 类委托(Class delegation) 等等... 基本语法 (Basic Syntax ) 变量(Variables) 基本数据类型( Basic Data Type ) 空安全(Null Safety ) 函数声明( Define Function ) 让函数更好的调用( Making functions easier to call ) 命名参数...
空安全(Null safety) 类型推断(Type inference) 数据类 (Data classes) 扩展函数 (Extension functions) 智能转换(Smart casts) 字符串模板(String templates) 单例(Singletons) 函数类型 (Function Type ) Lambda 表达式 高阶函数(Primary constructors)
4. 空指针安全 5. 定义函数 6. 构造函数 7. 单例模式 8. 数据类 9. in、区间、集合 10. it、 let、 apply 、run、 with 函数 11. 补充 1. 万能的: 2. 初始化和延时加载 Kotlin中必须为变量赋值,否则会报错 val name //报错 val name = "Kotlin" //正确有时候在定义变量的时候不能初始化,比如...
lateinit var name : String 非空属性使用延迟初始化 函数定义 函数定义使用fun关键字,参数格式为 参数:类型 ,最后函数返回值类型,如下 fun sum( a:Int, b:Int):Int{return a+b} 亦可以函数表达式声明函数 fun sum( a:Int, b:Int)= a+b // 自动类型推断或者 fun sum(a:Int,b:Int):Int=a+b ...
1,kotlin在有主构造函数和次构造函数时,次构造函数必须或直接或间接的调用主构造函数(间接指的是,有一个次构造函数调用了主构造函数,其他次构造函数可以调用该次构造函数) 2,data class必须至少有一个主构造函数的参数!也就是说data class必须要有主构造函数 ...