**JVM**의 제네릭은 보통 **타입 소거**를 사용해 구현한다
→ **실행 시점**에 제네릭 클래스의 **인스턴스**에 타입 인자 정보 없음
ex) List<String> 객체를 만들어도 실행 시점에는 **List**로 만 인식
→ is 검사에서 타입 인자로 지정한 타입을 검사할 수 없음
→ inline 키워드 사용 (함수를 호출한 식을 모두 함수 본문으로 바꿈)
**inline + reified**를 통해서 런타임 타입 검사를 할 수 있음
→ 이 조합을 타입 파라미터 라고 함
타입 검사**와 캐스팅 (is, !is, as, as?)(::class)