Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- View
- lifecycle
- Coroutine
- AppBarLayout
- Algorithm
- 백준
- 알고리즘
- HTTP
- Behavior
- 코틀린
- activity
- DataBinding
- recyclerview
- Android
- notification
- onLayout
- sqlite
- LiveData
- CustomView
- hilt
- ViewModel
- BOJ
- kotlin
- 안드로이드
- 알림
- Navigation
- room
- onMeasure
- CollapsingToolbarLayout
- CoordinatorLayout
Archives
- Today
- Total
개발일지
Kotlin in A..Z (27) - reified 본문
reified의 필요성
코드
fun <T> genericFunction() {
// Error Kotlin: Cannot use 'T' as reified type parameter. Use a class instead.
println(T::class.java)
}
위 함수는 일반적인 제네릭 함수이다. 위 함수 같은 경우는 Java처럼 T 형식 매개변수가 런타임에 삭제되기 때문에 T에 접근할 수 없다.
자바에서 접근하던 방법
매개변수를 받아서 실행시간에 사라지지 않게 했다.
코드
<T>
void genericFunction(T arg) {
arg.getClass();
}
reified
- inline 함수에만 사용할 수 있다.
- inline처리 될 때 코드가 복사되면서 실제 자료형을 알 수 있기 때문에 런타임에서도 사용할 수 있다.
코드
inline fun <reified T> genericFunction(arg: T) {
println(T::class.java)
}
'Kotlin (코틀린)' 카테고리의 다른 글
Kotlin in A..Z - 범위 지정 함수 (0) | 2020.07.27 |
---|---|
Kotlin in A..Z - Array (0) | 2020.07.21 |
Kotlin in A..Z (26) - 상, 하위 형식의 가변성 (0) | 2020.07.19 |
Kotlin in A..Z (25) - 제네릭 (0) | 2020.07.19 |
Kotlin in A..Z (24) - 연산자 오버라이딩 (0) | 2020.07.18 |
Comments