在Scala中对通用未绑定的Comparable进行排序

时间:2016-10-27 18:54:37

标签: scala sorting

作为一项微不足道的练习的一部分,我正在尝试实现以下Java接口:

$parts = explode('.', $number);
echo $parts[0];
echo isset($parts[1]) ? number_format($parts[1] ,0) : '0';

使用Java类非常容易实现。但是,在处理public interface Sort { @SuppressWarnings("rawtypes") public ArrayList<Comparable> sort(ArrayList<Comparable> table); } 时,Scala的类型推断似乎存在问题。这是我的Scala实现:

Collections.sort()

这是我在运行一些测试时遇到的错误(主要用class SortImpl extends Sort { override def sort(table: util.ArrayList[Comparable[_]]): util.ArrayList[Comparable[_]] = { util.Collections.sort(table) table } } ArrayList<Double>等测试方法。)

ArrayList<Integer>

我找到了处理此问题的示例,仅针对特定类,例如: Sort unbound Comparable in Scala

而且,我无法修改界面。有没有办法在Scala中实现它?

1 个答案:

答案 0 :(得分:1)

试试:

scala> import java.{util => u}
import java.{util=>u}

scala> def sort[T <: Comparable[T]](t: u.ArrayList[T]):u.ArrayList[T] = { 
         u.Collections.sort(t); t 
       }
sort: [T <: Comparable[T]](t: java.util.ArrayList[T])java.util.ArrayList[T]