sreich
09/08/2022, 6:39 PMRuckus
09/08/2022, 6:42 PMpublic class Inquiry {
private Status status;
private Notes notes;
public Inquiry status(Status status) {
this.status = status;
return this;
}
public Inquiry notes(Notes notes) {
this.notes = notes;
return this;
}
}
You can have basically the same in Kotlin
class Inquiry {
var status: Stats? = null
var notes: Notes? = null
fun status(status: Status?): Inquiry {
this.status = status
return this
}
fun notes(notes: Notes?): Inquiry {
this.notes = notes
return this
}
}
sreich
09/08/2022, 6:46 PMsreich
09/08/2022, 6:47 PMRuckus
09/08/2022, 6:47 PMsreich
09/08/2022, 6:48 PMRuckus
09/08/2022, 6:49 PMsreich
09/08/2022, 6:49 PMRuckus
09/08/2022, 6:51 PMsreich
09/08/2022, 6:53 PMRuckus
09/08/2022, 6:55 PMapply
allow turning pretty much any thing into a pipeline:
class Inquiry {
var status: Status? = null
var notes: Notes? = null
}
Inquiry().apply {
status = sts
notes = blah
}.doSomethingWithInquiry()
sreich
09/08/2022, 6:57 PMsreich
09/08/2022, 6:57 PMRuckus
09/08/2022, 6:59 PMRuckus
09/08/2022, 7:02 PMInquiry(status = sts, notes = blah)
is arguably more readable than
Inquiry().status(sts).notes(blah)
sreich
09/08/2022, 8:49 PMVampire
09/08/2022, 8:57 PMclone
method in the chain methodsephemient
09/08/2022, 8:58 PMInquiry {
status = sts
notes = blah
}.doSomethingWithStatus()
when there are concerns about binary compatibility