코틀린 언어 정리 5-3

Reflection

주요 클래스들

리플렉션과 관련된 타입들(K로 시작)은 주로 소스 코드 자체에 대한 정보, 호출 가능한 참조 등을 제공해 줍니다. 코틀린 언어에 대해 잘 알고 있다면, 함수나 프로퍼티의 이름만 봐도 어떤 정보를 제공해 주는지 쉽게 알 수 있습니다.


KClass

[class name]::class, [object name]::class 실행 시 리턴되는 객체의 타입


Properties

isAbstract, isCompanion, isData, isFinal, isInner, isOpen, isSealed, members, nestedClass, objectInstance, qualifiedName, sealedSubclasses, simpleName, supertypes, typeParameters, visibility


Functions

equals, hashCode, isInstance


Extension Properties

allSuperclasses, allSupertypes, companionObject, companionObjectInstance, declaredFunctions, declaredMemberExtensionFunctions, declaredMemberExtensionProperties, declaredMemberFunctions, declaredMemberProperties, declaredMembers, functions, java, javaObjectType, javaPrimitiveType, js, jvmName, memberExtensionFunctions, memberExtensionProperties, memberFunctions, memberProperties, primaryConstructor, startProjectedType, staticFunctions , staticProperties, superclasses


Extension Functions

cast, createInstance, createType, findAnnotation, findAssociatedObject, hasAnnotation, isSubclassOf, safeCast


KFunction

::[function name] or [class name]::[function name] 구문 실행 시 리턴 되는 객체의 타입이며 이를 통해 함수 호출도 가능합니다.

Properties

isExternal, isInfix, isInline, isOperator, isSuspend


Extension Properties

extensionReceiverParameter, instanceParameter, isAccessible, javaConstructor, javaMethod, valueParameters


Extension Functions

callSuspend, callSuspendBy, findAnnotation, findParameterByName, hasAnnotation, reflect


KProperty, KMutableProperty

::[property name] 또는 [class name]::[property name] 구문 실행 시 리턴되는 객체의 타입이며 이를 통해 프로퍼티 참조가 가능합니다.

관련 타입들

KProperty, KProperty0, KProperty1, KProperty2

KMutableProperty, KMutableProperty0, KMutableProperty1, KMutableProperty2



이 후 나열한 Properties, Extension Properties, Extension Functions 등은 var로 선언한 Property를 나타내는 KMutableProperty에 대해서만 확인합니다.

Properties

setter


Extension Properties

extensionReceiverParameter, instanceParameter, isAccessible, javaField, javaGetter, javaSetter, valueParameters


Extension Functions

callSuspend, callSuspendBy, findAnnotation, findParameterByName, hasAnnotation


+ Recent posts