Validation

How many times did you have to write code like this:

fun setCapacity(cap: Int) {
if (cap < 0) {
throw IllegalArgumentException()
}
...
}

Instead, you can check arguments with require():

fun setCapacity(cap: Int) {
require(cap > 0)
}

This makes the code a lot more fluent.

You can use require() to check for nested nulls:

fun printNameLength(p: Profile) {
require(p.firstName != null)
}

But there's also requireNotNull() for that:

fun printNameLength(p: Profile) {
requireNotNull(p.firstName)
}

Use check() to validate the state of your object. This is useful when you provide some object that the user may not have set up correctly:

private class HttpClient {
var body: String? = null
var url: String = ""

fun postRequest() {
check(body != null) {
"Body must be set in POST requests"
}
}

fun getRequest() {
// This one is fine without body
}
}

And again, there's a shortcut for null: checkNotNull().

..................Content has been hidden....................

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