[kotlin] 코틀린 리플렉션을 이용한 접근 제한자 확인

코틀린은 리플렉션(Reflection)을 통해 런타임에 클래스의 정보를 분석하고 조작하는 기능을 제공합니다. 이를 사용하면 멤버 변수메소드에 접근 제한자가 public, protected, private 인지를 확인할 수 있습니다. 이번 글에서는 코틀린 리플렉션을 사용하여 해당 정보를 확인하는 방법에 대해 살펴볼 것입니다.

1. 리플렉션 라이브러리 가져오기

먼저, 해당 기능을 사용하기 위해 코틀린의 리플렉션 라이브러리를 가져와야 합니다. 이를 위해 build.gradle 또는 build.gradle.kts 파일에 다음과 같이 의존성을 추가합니다.

dependencies {
    implementation("org.jetbrains.kotlin:kotlin-reflect:1.5.21")
}

또는 Kotlin에서 사용하는 빌드 도구에 따라 설정해주시면 됩니다.

2. 접근 제한자 확인하기

다음은 코틀린의 리플렉션을 사용하여 접근 제한자를 확인하는 코드 예시입니다.

import kotlin.reflect.full.memberProperties

class MyClass {
    private val privateVar = 10
    protected var protectedVar = 20
    val publicVar = 30
}

fun main() {
    val myClass = MyClass::class
    val memberProperties = myClass.memberProperties

    for (property in memberProperties) {
        println("Property name: ${property.name}, isPublic: ${property.isPublic}, isProtected: ${property.isProtected}, isPrivate: ${property.isPrivate}")
    }
}

위 코드에서는 MyClass의 각 멤버 변수들의 접근 제한자를 확인하는 예시입니다.

이제 코틀린의 리플렉션을 통해 멤버 변수나 메소드의 접근 제한자를 확인하는 방법을 알아보았습니다.

더 많은 정보를 알고 싶다면 코틀린 공식 문서를 참고하시기 바랍니다.