2016-03-29 42 views
0

java türü parametresi yazmak zorunda, benKOTLIN en jenerik

public abstract class AdapterItem<T extends AdapterItem> {} 

sonra bir sınıf tanımlı, ben bir listeye

List<AdapterItem> topics 

için bu sınıfın verileri koymak ve ben "teslim etmek zorunda bir KOTLIN sınıfına

için konular" ve benim sınıftır:

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

ama bir hata aldım: "type argümanı gerekiyor". List<AdapterItem>'u List<AdapterItem<out AdapterItem>> olarak değiştirmem gerekiyor ve bu son değil. hala bir hata var. Çünkü AdapterItem hala tip tartışmasına ihtiyaç duyuyor. Benim çözümüm List<AdapterItem<TopicItem>> (topicItem AdapterItem alt sınıfıdır)

ile değiştirmektir, ancak daha da kötüsü. Herkesin bir çözümü var mı?

cevap

4

genel tür bağımsız değişkeni sonraki kodda kullanılmazsa, kullanabileceğiniz bir star-projection: Bu denedim

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

, bu work.it parametre lütfen not uyumlu –

+0

Can diyor gelmez daha fazla bilgi sağlamak? Yayınladığınız kodda böyle bir hatanın nasıl olacağını görmek istemiyorum –