코틀린10 안드로이트 코틀린 Reflection(리플렉션) 기초 정의 코틀린에서 Reflection이란 런타임에 프로그램의 클래스를 조사하기 위해서 사용되는 기술입니다. 즉, 프로그램이 실행중일 때 인스턴스 등을 통해 객체의 내부 구조 등을 파악할 수 있습니다. 대표적으로 어노테이션이 그 예입니다. 하지만, 함수를 호출하거나 객체를 만들 때마다 조사를 해야 하기 때문에 남용하면 성능 저하를 유발할 수 있습니다. Reflection(리플렉션)을 사용하기 위한 의존성(라이브러리) 추가 코틀린에서 Reflection을 사용하기 위해선 아래와 같은 의존성을 추가해야 합니다. 안드로이드 스튜디오를 사용하는 경우 implementation "org.jetbrains.kotlin:kotlin-reflect:{kotlin_version}" InteliJ IDEA를 사용하고 있는 경우에는.. 2023. 3. 9. 코틀린에서 자주 사용하는 어노테이션(Annotation)@ 정리-1 코틀린에서 자주 사용하는 어노테이션에 대해 알아본다 어노테이션은 메타데이터 ( 부가기능 )을 코드에 비침투적으로 추가할 수 있는 수단이다 코틀린에서 어노테이션(Annotation)의 종류 Kotlin에 내장되어 있는 built in annotation Anotation의 정보를 알려주기 위한 meta annotation custom annotation 크게 보면 이렇게 세 종류의 어노테이션이 존재합니다. Kotlin에 내장되어있는 built in Annotationd 코틀린에는 이미 무수한 annotation들이 내장되어 있습니다. @Deprecated 특정 클래스, 함수, 변수 등을 더 이상 사용하지 말아달라고 말하고 싶을 때 사용하는 어노테이션입니다. @Deprecated("It is deprecat.. 2023. 3. 6. 코틀린에서 변성(variance)이란 무엇인가 - 상세 설명 변성(variance)이란? 기저 타입(base type)이 같고 타입 인자(type argument)가 다른 경우 서로 어떤 관계가 있는지 설명하는 개념 아래의 코드에서 List는 기저 타입 / , 는 타입 인자이다 List, List 단, 여기서 String은 Any의 하위 타입이지만 List은 List의 하위 타입이 아니다 그렇기 때문에 다음과 같은 코드는 에러가 발생한다 fun addStringList(list: MutableList) { list.add("text") } fun addNumberList() { val numbers = mutableListOf(1, 2, 3) // 에러 발생 addStringList(numbers) } 만약 위 코드가 에러가 발생하지 않을 경우 list에 의도하지.. 2023. 2. 18. 코틀린 확장함수 Scope함수 apply, with, let, also, run 이란? Scope함수 apply, with, let, also, run 사용방법 각 Scope 함수들의 내부 모습(apply와 with 차이도 설명) 사용 및 응용 예시 Scope 함수를 사용할 때 주의 사항 HTML 삽입 미리보기할 수 없는 소스 표준 확장함수들(Scope 함수)의 내부 모습 inline fun with(receiver: T, block: T.() -> R): R { return receiver.block() } inline fun T.also(block: (T) -> Unit): T { block(this) return this } inline fun T.apply(block: T.() -> Unit): T { block() return this } inline fun T.let(block:.. 2023. 1. 16. 이전 1 2 3 다음