Я пытаюсь переписать https://gist.github.com/319827 в Scala. Но я не могу его скомпилировать. Каков правильный синтаксис?Scala, расширенный общий удлинитель
Ошибки Я ВСЕГДА получаю: Требуемый тип
класса, но java.util.Comparator [_>: java.lang.Comparable [java.lang.Object]] найден
источник:
package v6ak.util
import java.util.Comparator
object NaturalComparator extends Comparator[_ >: Comparable[Object]]{
override def compare(o1:Comparable[Object], o2:Comparable[Object]) = {
if(o1==null || o2==null){
throw new NullPointerException("Comparing null values is not supported!");
}
o1.compareTo(o2);
}
}
Ну, это не совсем тот код, который я хочу. Я действительно ненавижу специализацию (например, специализация в ObjectPascal). – v6ak 2010-11-28 09:12:14
Вы можете написать менее специализированный код, но вы потеряете безопасность типа во время компиляции. Вы действительно хотите, чтобы вам разрешалось писать код для сравнения `Date` с` File`, который будет работать только во время выполнения? – shellholic 2010-11-28 15:12:18
Хм, но это не относится к исходному Java-коду. Я думаю, что я могу написать что-то похожее на Java-код в Scala, но это не очень приятно. – v6ak 2010-12-03 10:26:50