Type Checks and Casts
Explore Kotlin's approach to type checking and casting, including smart casts that simplify code and safe casts that prevent exceptions. Understand how to replace Java's try-with-resources with Kotlin's use function for better resource management and cleaner, safer code.
We'll cover the following...
We'll cover the following...
While writing our code, we may often be inclined to check what type our object is using is, and cast it using as. As an example, let’s imagine we’re building a system for superheroes. Each superhero has their own set of methods:
interface Superheroclass Batman : Superhero {fun callRobin() {println("To the Bat-pole, Robin!")}}class Superman : Superhero {fun fly() {println("Up, up and away!")}}
Defining classes Batman and Superman, both implement the Superhero interface
There’s also a function where a superhero tries to invoke their superpower:
fun doCoolStuff(s: Superhero) {if (s is Superman) {(s as Superman).fly()}else if (s is Batman) {(a as Batman).callRobin()}}
Performing superhero specific action based on type
But as we know, Kotlin has smart casts, ...