我们可以在data class前面添加@NoArg注解,这样编译器就能为其生成一个无参构造函数。使用示例如下: 代码语言:javascript 复制 @NoArg dataclassUser(@TableId(value="id",type=IdType.AUTO)varid:Int?,varuserName:String?,//用户名varage:Int?,//年龄varpassword:String?,//密码varname:String?,//姓名varema...
如果数据类需要无参构造函数,则所有属性必须有默认值: dataclassGirl(varname:String="",varage:Int=0,varheight:Int=0,varaddress:String="") vargirl3:Girl=Girl() 1. 2. 3. copy函数 当要复制一个对象,只改变一些属性,但其余不变,copy()就是为此而生 vargirl1:Girl=Girl("嫚嫚",29,160,"廊坊"...
data class User(val name: String, val age: Int) 编译器会为数据类(dataclass)自动生成以下函数:equals()/hashCode()toString()默认输出"User(name=John, age=42)"componentN()按声明顺序对应于所有属性copy() 如果数据类需要无参构造函数,则所有属性必须有默认值:dataclassUser(valname:String="",valage:...
4.1、使用 data class 没有设置无参构造函数 在Kotlin 中,不需要自己动手去写一个 JavaBean,可以直接使用 DataClass,使用 DataClass编译器会默默地帮我们生成一些函数。例如: 代码语言:java 复制 dataclassPerson(varname:String,varage:Int){} 这个Bean是用于接收服务器数据,通过Gson转化为对象的。例如: 代码语言:...
*///data class 数据类,没有无参构造函数, 类默认用final修饰//通过noArg和allOpen插件,无缝转换JavaBean@NoArgAllOpendataclassCountry(valid:Int=0,valname:String="中国")//没有注解的数据类,没有无参构造并且类的类型为finaldataclassProvince(valprovinceId:Int,valprovinceName:String)funmain(args:Array<Stri...
哈哈,感谢回答,无参构造函数不是我想要的,这里mybatis需要的是一个有两个long类型参数的构造函数,已经找到解决办法了。添加一个两个long参数的二级构造函数就好了,具体代码是这样的: data class Child( var stuId: Long, var schoolId: Long, var stuName: String = "", var stuAvatar: String = "" ) {...
Student : Person()中,Person后面加了括号,说明调用了父类的无参构造函数; 2.2 主构造函数 classStudent(val sno: String, val grade: Int) : Person() Note: Kotlin中的主构造函数是最常用的构造函数,每个类默认都会有一个不带参数的主构造函数,当然也可以显式地给它指明参数,主构造函数直接定义在类名的后...
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 Type ) Lambda 表达式 高阶函数(Primary constructors) 函数字面量和内联函数(Function literals & inline functions) 类委托(Class delegation) 等等... 基本语法 (Basic Syntax ) 变量(Variables) 基本数据类型( Basic Data Type ) 空安全...
将注解用到 data class 中 @NoArgOpenDataClassdataclassCountry(varid:Int,varname:String,varcontinent:String) 经过上面5个步骤,编译器就会帮我去掉final关键字,并且生成一个无参的构造方法,但是由于是在编译器做的操作,所以在源代码中还是无法直接使用无参的构造函数,只能通过反射来使用。