2016-03-29 13 views
0

を記述する必要があり、私はその後、kotlinのジェネリックはJavaで型パラメータ

public abstract class AdapterItem<T extends AdapterItem> {} 

クラスを定義し、私はリスト

List<AdapterItem> topics 

に、このクラスのデータを入れて、私は "を提供する必要がありますkotlinクラスのトピック」

と私のクラスは次のとおりです。

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

しかし、私はエラーが発生しました: "タイプ引数が必要です"。 List<AdapterItem>List<AdapterItem<out AdapterItem>>に変更する必要がありますが、それは最後ではありません。私はまだエラーが発生します.AdapterItemは型引数を必要とするためです。私の解決策はList<AdapterItem<TopicItem>>に置き換えることです(topicItemはAdapterItemのサブクラスです)

しかし、それは悪いです。誰にでも解決策がありますか?

答えて

4

ジェネリック型引数は、後続のコードで使用されていない場合、あなたはstar-projectionを使用することができます。

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

私はこれを試してみた、それはwork.itは –

+0

はあなたしてくださいすることができ、パラメータに互換性がないと言うしません。より多くの情報を提供しますか?あなたが投稿したコードでこのようなエラーがどのように起こるのかわかりません –

関連する問題