我正在使用 Java 和 Scala 的 twirl 模板。所以我试图对模板中的列表进行排序,但我不知道如何重写 Comparator 方法。
我的列表包含设计如下的类的对象:
class Foo extends BaseFoo<Foo>
类 BaseFoo 有一个名为
的方法public String FooName() {/*returns some Name of Foo*/}
在我的 scala twirl 模板中,它看起来像:
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);
}
})
但这似乎无法编译:
class type required but java.util.ArrayList[_ <: BaseFoo[_]] found
最佳答案
不是直接答案,但考虑到您声明您有 Foo 对象列表,直接的解决方案似乎是使用
source: java.util.Collection[_ <: Foo[_]]
或者类似的东西!
含义:当列表包含 Foo 对象时,这些对象是从 Object 还是从 FooBase 派生有什么关系?!
关于java - Scala 中 java.util.Comparator 的通用实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50984596/