728x90
//dependencies 추가
implementation "org.jetbrains.kotlin:kotlin-reflect:1.3.61"
//다른 클래스
class Address {
companion object {
const val data1Car = "1"
const val data2Car = "2"
const val data3Car = "3"
}
}
//문자열로 변수명 호출
for(i: Int in 1..3)
{
val address= Address::class
textView.append("코스${i}: ${address.companionObject?.members?.find { it.name == data${i}Car}?.call(String())}"})
}
변수명 중간 숫자를 for 문으로 돌려서 사용하고 싶어서 만들어 봤다.
그런데 이방법은 좋지 않다고 한다.
class Address {
companion object {
// 배열사용
val array = arrayOf("1", "2", "3")
// Map 사용
val map = mapOf("data1" to "1", "data2" to "2", "data3" to "3")
}
}
fun main(args:Array<String>) {
//문자열로 변수명 호출
for(i: Int in 1..3)
{
// 배열에서 꺼내서
val idx = i - 1 // 배열의 인덱스는 0부터 시작하므로
textView.append("코스${i}: ${Address.array[idx]}")
// 맵 사용해서 꺼내기
val key = "data${i}" // 맵에서 키로 가져오기
textView.append("코스${i}: ${Address.map[key]}")
}
}
이런식으로 Map을 사용하는 방법이 좋은 방법이라고 한다.
728x90
'안드로이드' 카테고리의 다른 글
안드로이드 코틀린 / Application Installation Failed (0) | 2022.09.30 |
---|---|
안드로이드 코틀린 / 동영상 링크 걸기, kotlin video link (0) | 2022.08.30 |
안드로이드 코틀린 / java.lang.UnsatisfiedLinkError: dlopen failed: library "xxxx.so" not found (0) | 2022.03.29 |
안드로이드 코틀린 / kotlin gradle and ide plugin versions are different (0) | 2022.03.29 |
안드로이드 코틀린 / plugin version is not the same as library version (0) | 2022.03.25 |