2015-12-26 6 views

risposta

57

Solo un limite superiore può essere specificato all'interno delle parentesi angolari.

Kotlin offre sintassi diversa per i vincoli generici quando v'è più di un vincolo:

class Foo<T> where T : Bar, T : Baz { ... } 

e per le funzioni:

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

È documentato here.

+0

C'è un modo per usarlo per un tipo di divertimento parametrico, ad esempio, fun foo (arg: ClassType, InterfaceType) {}? Senza aggiungere il parametro type alla classe – Ufkoku

+0

@Ufkoku, no, non c'è modo di farlo: non ci sono tipi di intersezioni in Kotlin, e i parametri generici possono essere dichiarati solo esplicitamente. – hotkey