[Kotlin] Map

2024. 3. 20. 11:55dev/aos

728x90
반응형
val params Map<String, String> = mapOf("title" to "content1")
params["sub"] = "content2"

 

Kotlin에서 Map읽기전용이다.

그렇기 때문에 params["sub"]에서 더이상 값을 추가할 수 없다. 

 

 

Map형태로 받은 경우엔 다음과 같이 사용

.toMutableMap() 함수를 사용해서 변형이 가능하도록 한다.

val params: MutableMap<String, String> = (parameterParams ?: mapOf("" to "")).toMutableMap()
params[""] = "";

 

 

변형 가능한 상태로 초기화

MutableMap - mutableMapOf("" to "" ) 사용.

val params: MutableMap<String, String> = mutableMapOf("title" to "content")
params["sub"] = "test"

 

 

2024-03-28-목

dart로부터 Map<dynamic, dynamic>으로 값이 전달되는 경우,

Kotlin은 Map<*, *>형태로 받을 수 밖에 없다.

 

debug모드인 경우 문제가 되지 않으나, release모드인 경우 타입 문제가 발생한다.

Map<String, String>형태로 받고 싶은 경우를 예로 코드를 작성해본다.

entries로 Map데이터를 꺼내고, associate로 'String'형태로 변환시켜준 뒤 toMutableMap으로 타입을 변형하여 전달한다.

externalParams: Map<*, *> = externalArguments

deviceParams: Map<String, String> = (externalParams as Map<*, *>).entries
	.associate { element -> element.key.toString() to element.value.toString()
    .toMutableMap()
728x90
반응형

'dev > aos' 카테고리의 다른 글

[kotlin] no constructor class  (0) 2024.06.13
[AOS] information about setting the namespace.  (0) 2024.03.21
[AOS] Kakao Login  (0) 2024.02.13
[AOS] PackageInfo #move other app  (0) 2024.02.08
[AOS] RecyclerView  (0) 2024.02.06