변성 - 공변, 무공변, 반공변
공변,무공변,반공변에 대한 개념들은 "타입 S가 T의 하위타입이면 List도 List의 하위타입인가?"에 대한 질문으로 시작한다. 타입 S가 T의 하위 타입일때 -> Box와 Box가 어떤 관계도 아닌 경우 : 타입 S가 T의 하위 타입일때 -> Box가 Box의 하위타입인 경우 : 타입 S가 T의 상위 타입일때 -> Box가 Box의 상위타입인 경우 일반적으론 무공변이다. List랑 List은 어떤 관계도 없다. 왜그러냐면, 제네릭은 "타입소거"방식으로 동작한다. 타입소거란? 컴파일시에만 타입 검사를 하고 런타임시에는 제네릭의 인스턴스에 대한 타입정보를 갖고 있지 않는 것 예를 들어) List은 런타임시에는 그냥 List로 간주된다. (개발자눈에만 타입이 보인다는뜻) 그래서 is 키워트로 List의 타..
개발/코틀린
2020. 11. 22. 14:47
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Android
- #우분투
- 코루틴내부동작
- 무공변
- 코틀린코루틴스터디
- 코루틴딥다이브
- Hilt
- #tensorflow
- 키보드
- 다이나믹링크
- 코틀린
- #윈도우
- 안드로이드
- Kotlin
- 자바
- dynamiclink
- #EC2
- 반공변
- 코루틴동시성프로그래밍
- 변성
- 프로그래머스
- c++
- 코틀린코루틴
- 공변
- 코루틴
- 코틀린으로배우는함수형프로그래밍
- stateflow
- databinding
- TF-Slim
- 힐트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함