開発をしていると文字列の変換などを行うUtilクラスが欲しい場面が良くある。ある文字から別の文字への変換だったり、APIから返ってきたエラーコードをアプリで用意したコードに変換する場合など。こういった場合に変換前と変換後の組み合わせのテーブルを用意した上で、コンバートさせるfunctionを用意する。
トップレベル関数とトップレベルプロパティを使用
Kotlinはstaticメソッドがなくトップレベル関数が推奨されているのでクラスを用意せずに書いてみると以下のような感じ。定数はトップレベルプロパティ(コンパイル時定数)として定義する。
// Top level property
val TABLE = mapOf(
"API-E0001" to "BFF-E001",
"API-E1001" to "BFF-E002",
"API-E2001" to "BFF-E003"
)
// Top level property 定数
const val UNKNOWN_CODE = "BFF-E999"
// Top level function
fun convertCode(before: String): String {
if (TABLE.containsKey(before)) {
return TABLE.get(key = before) ?: UNKNOWN_CODE
}
return UNKNOWN_CODE
}
確認
fun main() {
println(convertCode("API-E0001"))
println(convertCode("API-E1001"))
println(convertCode("API-E2001"))
println(convertCode("API-E9999"))
println(convertCode(""))
}
BFF-E001
BFF-E002
BFF-E003
BFF-E999
BFF-E999
コメントを残す