インタフェースに具体的な実装のオブジェクトを返す関数を追加します。具体的な実装を返すインタフェースの汎用関数
インターフェイスを持つので:Music
クラスのcloneMe()
は返す必要がありますMusic
オブジェクトとVideo
クラスの機能cloneMe()
を返す必要があります
interface Content {
fun <???> cloneMe(): ?
}
とクラス
class Music: Content
class Video: Content
機能Video
オブジェクトです。
私が来ている最も近いです:
interface Content {
fun <T: Content> cloneMe(): T
}
class Music : Content {
override fun <T : Content> cloneMe(): T {
return Music() as T
}
}
が、私はここでの問題は、私は「私を可能にする」未チェックのキャストを、しなければならないということです
val music: Music = Music().cloneMe<Music>()
を行うことができます(つまり、コンパイルする)
問題があります。
これを達成する最もよい方法は何ですか?
非常に感謝します! – FWeigl