Hello, Android!

형식 매개변수 제한 본문

Kotlin

형식 매개변수 제한

lwndnjs93 2020. 4. 15. 21:20

형식 매개변수의 자료형을 특정 자료형으로 제한하거나

제네릭은 기본적으로 null을 허용하지만 허용하지 않기 위해 Any로 타입을 제한하기도 하였다

코틀린의 제네릭 에서는 형식 매개변수의 타입을 제한할때 여러 조건에 맞춰 제한하는것도 가능하다

만약 두개의 인터페이스 구현이 포함된 클래스로 제한하는등

여러 제약 조건이 필요할때는 where 키워드를 통해 제한이 가능하며

where을 통한 조건은 모든 조건이 만족되는 경우만 허용한다

제네릭 클래스 KakaoFriends 클래스의 형식 매개변수는 where조건으로 인해

인터페이스 Ryan, Frodo를 구현하는 클래스로 제한된다

obj1은 Kakao 클래스를 타입으로 넣었다

여기서 Kakao클래스는 Ryan, Frodo인터페이스를 구현하는 클래스이기 때문에 문제없이 객체생성이 가능하다

하지만 obj2에서 Friends 클래스는 Ryan 인터페이스만 구현하고 있어서

Ryan, Frodo 두 인터페이스를 모두 구현해야하는 조건에 맞지 않기 때문에 객체 생성이 불가능하다

'Kotlin' 카테고리의 다른 글

자료형 프로젝션  (0) 2020.04.19
상위 하위 형식의 가변성  (0) 2020.04.18
제네릭 클래스 자료형 변환  (0) 2020.04.14
제네릭  (0) 2020.04.13
열거형 클래스 enum  (0) 2020.04.04