Kotlin - キャスト(as)
公開日:2019-11-06 更新日:2019-11-06
[Kotlin]
1. 概要
変数の型を、親子関係がある他の型に変更します。
変数の値の型は変わらず、外から見た時の型だけが変わることに注意してください。
また、Int と Long は Number から継承したクラスのため、相互キャストできません。
変換したい場合は、toInt() や toLogn() など、to が付くメソッドを使って変換してください。
変数の値の型は変わらず、外から見た時の型だけが変わることに注意してください。
また、Int と Long は Number から継承したクラスのため、相互キャストできません。
変換したい場合は、toInt() や toLogn() など、to が付くメソッドを使って変換してください。
2. キャスト(as)
String の値が入った Any から String にキャスト
String の値が入った Any から Int にキャスト。
String から Int に変換できないため、ClassCastException が発生します。
as? を使うと、キャストに失敗しても例外が発生しません。
戻り値は null になります。
val x:Any = "abc"
val s = x as String
println(s) // abc
String の値が入った Any から Int にキャスト。
String から Int に変換できないため、ClassCastException が発生します。
val x:Any = "abc"
val s = x as Int // ここで ClassCastException が発生
println(s)
as? を使うと、キャストに失敗しても例外が発生しません。
戻り値は null になります。
val x:Any = "abc"
val s = x as? Int
println(s) // null