Operatore is

Con l’introduzione del polimorfismo potrebbe essere utile conoscere il tipo dell’oggetto con cui si ha a che fare. Ad esempio se dobbiamo utilizzare un determinato metodo o far riferimento ad uno specifico attributo della sottoclasse, avremo bisogno dell’operatore is.

Quest’operatore indica se l’oggetto è “istanza di” un determinato tipo. La sintassi prevede la seguente dichiarazione:

<riferimento> is <tipo_riferimento>

Vediamo nella pratica come si usa l'operatore is:

open class Persona //...

class Maschio : Persona()//...

class Femmina : Persona()//...

fun main(args: Array<String>) {

val a : Persona = Maschio()

if (a is Maschio) {

// Abbiamo un maschio

}

else if (a is Femmina) {

// Abbiamo una femmina

}

else {

// Abbiamo una persona generica

}

}

Naturalmente è anche possibile usare il costrutto when:

when(a) {

is Maschio -> {

// Abbiamo un maschio

}

is Femmina -> {

// Abbiamo una femmina

}

else -> {

// Abbiamo una persona generica

}

}

Come si nota l'operatore is è molto simile all'operatore in visto nella lezione 3.

results matching ""

    No results matching ""