Giả sử tôi muốn một biến kiểu, T, mở rộng một lớp nhất định và triển khai một giao diện. Cái gì đó như:
class Foo <T : Bar implements Baz> { ... }
Cú pháp cho điều này trong Kotlin là gì?
Giả sử tôi muốn một biến kiểu, T, mở rộng một lớp nhất định và triển khai một giao diện. Cái gì đó như:
class Foo <T : Bar implements Baz> { ... }
Cú pháp cho điều này trong Kotlin là gì?
Câu trả lời:
Chỉ có thể chỉ định một giới hạn trên bên trong dấu ngoặc nhọn.
Kotlin cung cấp các cú pháp khác nhau cho các ràng buộc chung khi có nhiều hơn một ràng buộc:
class Foo<T>(val t: T) where T : Bar, T : Baz { ... }
và cho các chức năng:
fun <T> f(): Foo where T : Bar, T : Baz { ... }
Nó được ghi lại ở đây .
fun <T> wrapClientListener(listener: RemoteController.OnClientUpdateListener): T where T : RemoteController.OnClientUpdateListener, T : NotificationListenerService
. Tôi không quan tâm loại của T. Nhưng khi tôi gọi phương thức này, Kotlin yêu cầu loại cụ thể. Vậy làm thế nào tôi có thể gọi phương thức này?