Constructor overload

In Java, we're used to having overloaded constructors:

class MyClass {
private final String a;
private final Integer b;
public MyClass(String a) {
this(a, 1);
}

public MyClass(String a, Integer b) {
this.a = a;
this.b = b;
}
}

We can simulate the same behavior in Kotlin:

class MyClass(val a: String, val b: Int, val c: Long) {

constructor(a: String, b: Int) : this(a, b, 0)

constructor(a: String) : this(a, 1)

constructor() : this("Default")
}

But it's usually better to have default parameter values and named arguments instead:


class BetterClass(val a: String = "Default",
val b: Int = 1,
val c: Long = 0)
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.149.249.252