특정 클래스를 확장하고 인터페이스를 구현하는 유형 변수 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 { ... }
여기에 문서화되어 있습니다 .
fun <T> wrapClientListener(listener: RemoteController.OnClientUpdateListener): T where T : RemoteController.OnClientUpdateListener, T : NotificationListenerService
. T 형은 상관 없어요. 하지만이 메서드를 호출하면 Kotlin에서 특정 유형을 요청합니다. 그렇다면이 메서드를 어떻게 호출 할 수 있습니까?