gpt4 book ai didi

java - Java 自界泛型的 Scala seq

转载 作者:行者123 更新时间:2023-11-30 07:15:18 26 4
gpt4 key购买 nike

我正在尝试在scala中创建一组子类的数组,问题是父类(super class)是一个自界泛型,即(显然是为了适应lombok,所以这不是我可以改变的东西)

abstract public SomeClass<T extends SomeClass>{}

在 Scala 中

val subClasses:Seq[_ <: SomeClass] = seq(sub1, sub2, ..., subN)

我收到的错误“SomeClass 采用类型参数”似乎表明我需要

Seq[_ <: SomeClass[_ <: SomeClass[_ <: SomeClass ...

经过相当多的谷歌搜索后,我仍然没有找到一个好的解决方案,此时我不知道要搜索什么。非常感谢任何帮助。

最佳答案

自引用类型称为 F-bounded polymorphism在斯卡拉。要创建您在示例中描述的 Seq,类型将为:

Seq[SomeClass[_ >: subN with sub2 with sub1 <: SomeClass[_ >: subN with sub2 with sub1 <: Object]]]

请注意,此类型特定于其中的项目列表,您可以创建一个包含 SomeClass 所有子类型的类型,但这会有点痛苦。

关于java - Java 自界泛型的 Scala seq,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38515654/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com