2017-10-06 71 views
2
fun serialize(aList: List<Any>) 

當我打電話用含符號和關鍵字列表序列化,編譯器抱怨科特林類型不匹配列表<Any>和List <可比<{com.cognitect.transit.Symbol&com.cognitect.transit.Keyword}>?>

類型不匹配:

Require List<Any> 
Found: List<Comparable<{Symbol & Keyword}>?> 

不宜列表協變?

我怎樣才能構建一個類型簽名以匹配編譯器期望List<Comparable<{Symbol & Keyword}>?>

編譯器期望的類型List<Comparable<{Symbol & Keyword}>?>但無效科特林語法

+0

'樂趣連載(ALIST:名單<*>)'? –

回答

4

你必須要serialize()接受List<Any?>,而不是因爲你Comparable類型可以爲空。

fun serialize(aList: List<Any?>) {} 

如果你想要接受List<Comparable<{Symbol & Keyword}>?>,你必須使用WHERE子句中提供多個上限:

fun <T> serialize(aList: List<Comparable<T>?>) where T: Symbol, T: Keyword {} 
相關問題