我在 Java 中有这个:
public class User {
String name;
String id;
int age;
public User(String name) {
this.name = name;
}
public User(String name, String id) {
this.name = name;
this.id = id;
}
public User(String id, int age) {
this.id = id;
this.age = age;
}
public User() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", id='" + id + '\'' +
", age=" + age +
'}';
}
}
Run Code Online (Sandbox Code Playgroud)
在 Kotlin 课程中,它是这样的:
class User {
var name: String?=null
var id: String?=null
var age: Int = 0
constructor(name: String) {
this.name = name
}
constructor(name: String, id: String) {
this.name = name
this.id = id
}
constructor(id: String, age: Int) {
this.id = id
this.age = age
}
constructor() {}
override fun toString(): String {
return "User{" +
"name='" + name + '\'' +
", id='" + id + '\'' +
", age=" + age +
'}'
}
}
Run Code Online (Sandbox Code Playgroud)
我需要知道的是如何在具有 4 个不同构造函数以及 setter 和 getter 的数据类中执行此操作
您可以使用默认参数和命名参数的组合,因此不需要多个构造函数。像这样定义你的数据类:
data class User(var name: String? = null, var age: Int = 0, var id: String? = null)
Run Code Online (Sandbox Code Playgroud)
然后以多种方式构建它。
User(name = "Foo") // returns User("Foo", 0, null)
User(name = "Foo", age = 21) // returns User("Foo", 21, null)
User(id = "x") // returns User(null, 0, "x")
User("Foo", 21, "x") // returns User("Foo", 21, "x")
User(id = "x", name = "Foo", age = 21) // returns User("Foo", 21, "x")
etc...
Run Code Online (Sandbox Code Playgroud)
getter 和 setter 是为您定义的,也不需要定义它们。
| 归档时间: |
|
| 查看次数: |
2245 次 |
| 最近记录: |