컴퓨터 언어/코틀린

[Kotiln] 코틀린 타입 변환 및 체크 as for type check and conversion

훈츠 2020. 2. 8. 12:07
반응형

코틀린에서 명시적 형변환과 암시적 형변환을 지원한다고 해도 Any type같은 경우는 암시적 형변환이 아닌 명시적 형변환을 사용해야 합니다. 이때 as 를 이용하여 형변환을 할수있습니다. 

as 사용법 : map list를 가지고 있는 map 예시

data class Person(var name:String, var number:String) //data class
var mapOfperson = mutableMapOf<String, Person>() //Person type mutable map
var mapOfMaps = mutableMapOf<String, Any>() //map 을 가지고있는 map 

//두개의 map of Person
mapOfperson.put("key1",Sperson("lkh","01"))
mapOfperson.put("key2",Sperson("cjs","02"))

//map을 가지고 있는 map 
mapOfMaps.put("list",mapOfperson) 

//maps 에서 map을 가지고 오는 법 
val getMaps = mapOfMaps.toMap() //<String, Any> 을 가지고 옴

//for 문으로 값을 꺼내기
for(show in getMaps){
var maps = show.component2() as MutableMap<String, Sperson> //형 변환
	println(maps.values) //value값 확인
    println(maps.keys) //value값 확인
    //특정값 serch
    for(show in maps){
    	if(show.value.name == "lkh"){ //찾을 값 검색
			println(show.value) 
            println(show.value.name)
            println(show.value.number)
        }
}

    

 

반응형