我在 Java 和 Scala 中使用旋转模板。所以我试图对模板中的 List 进行排序,但我不知道如何覆盖 Comparator 方法。
我的列表包含一个类的对象,设计如下:
class Foo extends BaseFoo<Foo>
类 BaseFoo 确实有一个方法叫做
public String FooName() {/*returns some Name of Foo*/}
在我的 scala 旋转模板中,它看起来像:
source: java.util.Collection[_ <: BaseFoo[_]]
在旋转模板中没有,我正在尝试对其进行排序:
@Collections.sort(
new util.ArrayList[_ <: BaseFoo[_]](source),
new Comparator[_ <: BaseFoo[_]] {
override def compare(o1: BaseFoo, o2: BaseFoo) = {
return o1.FooName.compareTo(o2.FooName);
}
})
但这似乎无法编译:
需要类类型,但找到 java.util.ArrayList[_ <: BaseFoo[_]]
不是直接的答案,但鉴于您声明您有一个 Foo 对象列表,直接的解决方案似乎是使用
source: java.util.Collection[_ <: Foo[_]]
或类似的东西!
意思是:当列表包含 Foo 对象时,这些对象是来自 Object 还是来自 FooBase 有什么关系?!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句