2016-03-29 19 views
0

in Java zu schreiben, habe ich eine Klasse definiertKotlin Generika haben Typ-Parameter

public abstract class AdapterItem<T extends AdapterItem> {} 

dann lege ich die Daten dieser Klasse zu einer Liste

List<AdapterItem> topics 

und ich habe die "liefern Themen“zu einer Kotlin Klasse

und meine Klasse ist:

class ShareDialogFragment(val mTopics: List<AdapterItem>) {} 

aber ich habe einen Fehler: "Typ Argument ist erforderlich". Ich muss die List<AdapterItem> zu List<AdapterItem<out AdapterItem>> ändern, und es ist nicht das Ende. Ich habe immer noch den Fehler, weil AdapterItem noch Typ Argument benötigt. Meine Lösung ist es, es zu ersetzen List<AdapterItem<TopicItem>> (topicItem ist die Unterklasse von AdapterItem)

aber es ist schlimmer. Hat jemand eine Lösung?

Antwort

4

Wenn der generische Typ Argument nicht in den nachfolgenden Code verwendet wird, können Sie ein verwenden star-projection:

class ShareDialogFragment(val mTopics: List<AdapterItem<*>>) {} 
+0

ich das versucht habe, es nicht work.it sagt Parameter nicht kompatibel –

+0

Können Sie mir bitte Mehr Informationen bereitstellen? Ich sehe nicht, wie ein solcher Fehler in dem von Ihnen geposteten Code möglich wäre –

Verwandte Themen