参考地址:http://kotlinlang.org/docs/reference/data-classes.html
在Kotlin语言中,想要创建那种什么都不做只持有数据的Bean类,需要使用“data class”修饰数据类对象,类似于java语言中的Bean对象。
1、创建数据类
data class User(var name: String, var age: Int)
User就是一个数据类,需要在主构造函数里声明所有的属性。2、使用数据类
// 生成数据类对象 val user = User("Tom", 20) // val user = User(name = "Tom", age = 20) // 设置属性值 user.name = "Jack" user.age = 30 // 获取属性值 val name = user.name // val name = user.component1() val age = user.age // val age = user.component2()
注:
(1)生成类对象可以使用上面两种方式;
(2)类对象里,有几个属性,就会有几个这个方法componentN()
,比如上面的示例,user.name = user.component1();
说明:
componentN()函数对应的是声明属性时的属性。
如果从基类继承的函数或者在类主体里自定义的函数被具体定义,都不能自动产生!
为了保证生成代码的一致性和有意义的方法,数据类对象必须满足以下要求:
To ensure consistency and meaningful behavior of the generated code, data classes have to fulfil the following requirements:
(1)构造函数必须至少有一个参数
(2)所有的构造函数参数必须标注val或者var;
(3)数据类对象不能是 abstract, open, sealed or inner;
(4)数据类对象不能继承其他类,但是可以实现接口
(5)在Java虚拟机里,如果生成的类需要有一个无参数的构造函数,所有属性的默认值必须有一个具体的值,例如:
3、复制数据类对象
使用copy方法赋值类对象,如下:
val user = User("Tom", 20) val user2 = user.copy(age = 30)
val user = User("Tom", 20) val (name, age) = user