kotlin エラー「error: ‘when’ expression must be exhaustive, add necessary ‘xxx’ branch or ‘else’ branch instead」の解決方法
kotlinで、エラー「error: ‘when’ expression must be exhaustive, add necessary ‘xxx’ branch or ‘else’ branch instead」の解決方法を記述してます。
環境
- OS windows11 home
- java 17.0.2
- kotlin 1.6.10-release-923
エラー全文
以下のコードで発生。
enum class Colors {
RED, BLUE, GREEN
}
fun getJp(color: Colors) = when (color) {
Colors.RED -> "赤"
Colors.BLUE -> "青"
}
fun main() {
val r = Colors.RED
val jp = getJp(r)
println("$r:$jp")
}
エラーメッセージ
error: 'when' expression must be exhaustive, add necessary 'GREEN' branch or 'else' branch instead
fun getJp(color: Colors) = when (color) {
^
原因
関数が「when」を使用して、全列挙値を網羅していないため
対処法
全て使用するか「else」を使用する
enum class Colors {
RED, BLUE, GREEN
}
fun getJp(color: Colors) = when (color) {
Colors.RED -> "赤"
Colors.BLUE -> "青"
else -> throw Exception("e")
}
fun main() {
val r = Colors.RED
val jp = getJp(r)
println("$r:$jp") // RED:赤
}
-
前の記事
EXCEL 直前の操作を実行するショートカットキー 2022.07.16
-
次の記事
Rust バージョンを確認する 2022.07.16
コメントを書く