作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在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/
我是一名优秀的程序员,十分优秀!