320x100
data class People(var name: String) // name이 변경될 수 있는 var people: People val names: MutableList<String> = mutableListOf() people.name?.let { names.add(people.name) // error } | cs |
변경될 수 있는 var 타입을 다른 변수에 대입하려고 할 때 에러가 발생한다.
Smart cast to 'List' is impossible, because 'people.name' is a mutable property that could have been changed by this time. | cs |
에러를 읽어보면 people.name이 변경될 수 있는 mutable 프로퍼티 이므로 에러가 난 시점에 값이 변경될 가능성이 있어 에러가 발생했다.
따라서 add 하기 전에 변경 불가능한 val 변수에 먼저 값을 세팅한 뒤 val 변수를 add해준다.
data class People(var name: String) // name이 변경될 수 있는 타입 var people: People val names: MutableList<String> = mutableListOf() people.name?.let { name -> // val name에 먼저 값 넣고 names.add(people.name) // val 값을 } | cs |
변경하면 위와 같다.
참고 : [stackoverflow]smart cast to type is impossible because variable is a mutable property
320x100
'Back-End (web)' 카테고리의 다른 글
[SpringBoot] use requestFactory in RestTemplateBuilder (0) | 2019.01.31 |
---|---|
Visual Studio 명령 인수로 입출력 파일 설정 (0) | 2019.01.26 |
[TEST] spock test example (0) | 2019.01.11 |
[Kotlin] Default argument (디폴트 매개변수) (0) | 2019.01.06 |
[Spock][Error] CannotCreateMockException (0) | 2019.01.03 |
댓글