[generics] 일반 확장 클래스 및 Kotlin에서 인터페이스 구현

특정 클래스를 확장하고 인터페이스를 구현하는 유형 변수 T를 원한다고 가정 해 보겠습니다. 다음과 같은 것 :

class Foo <T : Bar implements Baz> { ... }

Kotlin에서 이에 대한 구문은 무엇입니까?



답변

꺾쇠 괄호 안에는 하나의 상한 만 지정할 수 있습니다.

Kotlin은 제약 조건이 둘 이상인 경우 일반 제약 조건에 대해 다른 구문을 제공합니다.

class Foo<T>(val t: T) where T : Bar, T : Baz { ... }

및 기능 :

fun <T> f(): Foo where T : Bar, T : Baz { ... }

여기에 문서화되어 있습니다 .


답변