Notice
Recent Posts
Recent Comments
Link
Hello, Android!
형식 매개변수 제한 본문
형식 매개변수의 자료형을 특정 자료형으로 제한하거나
제네릭은 기본적으로 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 |