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

+ Recent posts