Trong Java, chúng ta sử dụng toán tử instanceOf để kiểm tra một đối tượng có phải là instance của một class hay interface nào đó hay không? Còn trong Kotlin, chúng ta sẽ sử dụng toán tử is các bạn nhé!
Ví dụ mình có một interface với 2 implementation như sau:
1 2 3 4 |
package com.huongdankotlin interface Shape { } |
1 2 3 4 |
package com.huongdankotlin class Triangle : Shape { } |
1 2 3 4 |
package com.huongdankotlin class Rectangle : Shape { } |
Bây giờ, nếu mình khởi tạo mới một đối tượng Shape với implementation là Triangle thì khi kiểm tra đối tượng mới này có phải là instance của Rectangle sử dụng toán tử is:
1 2 3 4 5 6 7 8 9 |
package com.huongdankotlin fun main() { var shape: Shape shape = Triangle() println(shape is Rectangle) } |
các bạn sẽ thấy kết quả như sau:
Ngược lại, để kiểm tra đối tượng này không phải là thể hiện của class Rectangle, các bạn có thể khai báo “!is” như sau:
1 2 3 4 5 6 7 8 9 |
package com.huongdankotlin fun main() { var shape: Shape shape = Triangle() println(shape !is Rectangle) } |
Kết quả: