코틀린 언어 정리 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
'코틀린( Kotlin )' 카테고리의 다른 글
코틀린 6-2 Annotations - 선언 (0) | 2020.04.16 |
---|---|
코틀린 6-1 Annotations - 개념 (0) | 2020.04.16 |
코틀린 5-2 Reflection - Callable References (0) | 2020.04.15 |
코틀린 5-1 Reflection - Class References & Bound Class References (0) | 2020.04.14 |
코틀린 4-11 Collection operations - Write operations (0) | 2020.04.14 |