728x90
반응형
lateinit var + private set
- 코틀린에서 지원하는 lateinit, lazy 를 통한 지연 생성.
- 해당 프로퍼티가 사용될 때 프로퍼티가 만들어짐.
- 비용, 시간 절약 가능.
- null 로 초기화해서 초기 null check 를 수행하지 않고 해당 프로퍼티의 내용을 참조할 수 있음.
- 테스트 코드에서 해당 필드에 접근하려면 리플렉션 사용
fun setPrivateField(obj: Any, fieldName: String, value: Any) { val property = obj::class.declaredMemberProperties.find { it.name == fieldName } property?.apply { isAccessible = true val field = this.javaField field?.isAccessible = true field?.set(obj, value) } }
val passportVO = PassportVO(base.email)
setPrivateField(passportVO, "businessId", businessId)
```
- kotlin 에서 리플렉션(reflection) 을 사용하여 private 또는 접근 불가능한 필드의 값을 동적으로 설정하는 유틸리티 함수.
- 클래스의 접근 제한자(private, protected 등) 와 상관없이 특정 객체의 필드 값을 강제로 설정함.
728x90
반응형
'Blog > TIL' 카테고리의 다른 글
2025-01-10 (금) (1) | 2025.01.10 |
---|---|
2025-01-09 (목) (0) | 2025.01.09 |
2025-01-07 (화) (0) | 2025.01.07 |
2025-01-06 (월) (0) | 2025.01.06 |
[240907] 이진법 (0) | 2024.09.07 |
댓글