型を汎用パラメータで相互参照しようとしています。有限バウンド制限に違反:スローパラメータの型を相互参照する方法
interface Group<C : Child<*>> {
val children: List<C>
}
interface Child<G : Group<*>> {
val parent: G
}
internal inner class MyGroup : Group<MyChild> {
override val children: List<MyChild>?
get() = null
}
internal inner class MyChild : Child<MyGroup> {
override val parent: MyGroup?
get() = null
}
:中AndroidStudioの "Kotlinに変換" 機能の結果を使用して
public interface Group<C extends Child> {
List<C> getChildren();
}
public interface Child<G extends Group> {
G getParent();
}
class MyGroup implements Group<MyChild> {
@Override
public List<MyChild> getChildren() {
return null;
}
}
class MyChild implements Child<MyGroup> {
@Override
public MyGroup getParent() {
return null;
}
}
:Javaでは は、私はこれを持っています。
kotlinにこのようなコードを書く方法はありますか?
このヘルプは、https://stackoverflow.com/questions/43786012/cross-references-in-type-parametersを参照してください。 –
@ zsmb13 mybe複製されています。答えは完璧な方法ではありません。 –