java - Scala 中 java.util.Comparator 的通用实现

标签 java scala twirl

我正在使用 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/

相关文章:

java - PSelectionEventHandler 不触发回调

java - ORMLite SQLite w/Plain Java 错误 : "SQL error or missing database"

scala - 将 1 个元素的列表转换为选项

java - 如何在 Play2 scala 模板中设置所选选项?

scala - 在 Play Framework 2.5 的 scala twirl 模板中使用 isProd 和 isDev

java - 使用 iText 将包含表单的 PDF 转换为仅包含文本的 PDF(保留数据)

java - 无需外部 SD 卡缓存位图

java - 如何在 Apache Spark 中使用 PathFilter?

scala - 使用spark访问HDFS失败

java - 将 Twirl 与 Spring MVC 结合使用