VOOZH about

URL: https://www.javacodegeeks.com/2019/01/storing-when-block-subject-variable.html

⇱ Storing when block subject in a variable - Java Code Geeks


Super short post, on a change introduced in Kotlin 1.3 (yes I know it has been out for a while now). We will take a quick look at capturing the subject of a when block into a scoped variable. This is a quality of life improvement that saves a line or so of code while making the role of the variable clearer.

Below is what you would write before the change:

val enum = myClass.enum
when (enum) {
 MyEnum.ONE -> println(enum.propertyOne)
 MyEnum.TWO -> println(enum.propertyTwo)
 else -> println(enum)
}

You can now write this instead:

when (val enum: MyEnum = myClass.enum) {
 MyEnum.ONE -> println(enum.propertyOne)
 MyEnum.TWO -> println(enum.propertyTwo)
 else -> println(enum)
}

The instantiation of the enum variable is merged with the declaration of the when block. enum is now scoped to the when block and cannot be accessed outside of it. Not a massive change, but it does makes the code look a little tidier.

Let’s look at one more example:
Below is what you would write before the change:

val obj = someObject()
when(obj) {
 is String -> println("This is a string and it says $obj")
 is Number -> println("This is a number and its value is $obj")
 else -> println("I don't know what $obj is")
}

Becomes:

when(val obj = someObject()) {
 is String -> println("This is a string and it says $obj")
 is Number -> println("This is a number and its value is $obj")
 else -> println("I don't know what $obj is")
}

Not really anything else to say on this subject as there isn’t much to talk about in the first place. You probably get the picture, the example from the Kotlin 1.3 Release Notes might make sense to you if I have failed to explain it myself.

If you found this post helpful, you can follow me on Twitter at @LankyDanDev to keep up with my new posts.

Published on Java Code Geeks with permission by Dan Newton, partner at our JCG program. See the original article here: Storing when block subject in a variable

Opinions expressed by Java Code Geeks contributors are their own.

Do you want to know how to develop your skillset to become a Java Rockstar?
Subscribe to our newsletter to start Rocking right now!
To get you started we give you our best selling eBooks for FREE!
1. JPA Mini Book
2. JVM Troubleshooting Guide
3. JUnit Tutorial for Unit Testing
4. Java Annotations Tutorial
5. Java Interview Questions
6. Spring Interview Questions
7. Android UI Design
and many more ....
I agree to the Terms and Privacy Policy

Thank you!

We will contact you soon.

πŸ‘ Photo of Dan Newton
Dan Newton
January 4th, 2019Last Updated: January 4th, 2019
0 79 1 minute read
Back to top button
Close
wpDiscuz