Diciamo che voglio una variabile di tipo, T, che estenda una certa classe e implementi un'interfaccia. Qualcosa di simile a:
class Foo <T : Bar implements Baz> { ... }
Qual è la sintassi per questo in Kotlin?
Diciamo che voglio una variabile di tipo, T, che estenda una certa classe e implementi un'interfaccia. Qualcosa di simile a:
class Foo <T : Bar implements Baz> { ... }
Qual è la sintassi per questo in Kotlin?
Risposte:
È possibile specificare un solo limite superiore all'interno delle parentesi angolari.
Kotlin offre una sintassi diversa per i vincoli generici quando c'è più di un vincolo:
class Foo<T>(val t: T) where T : Bar, T : Baz { ... }
e per le funzioni:
fun <T> f(): Foo where T : Bar, T : Baz { ... }
È documentato qui .
fun <T> wrapClientListener(listener: RemoteController.OnClientUpdateListener): T where T : RemoteController.OnClientUpdateListener, T : NotificationListenerService
. Non mi interessa del tipo di T. Ma quando chiamo questo metodo, Kotlin chiede il tipo specifico. Allora come posso chiamare questo metodo?