【发布时间】:2020-07-04 04:17:54
【问题描述】:
我了解错误消息的含义,但不确定我需要在哪里添加某种类型的界限。
java 整数值不继承自 Comparable 吗?不确定我是否专注于这里的正确区域。
类型参数 [Any] 不符合方法 comp 的类型参数 界限 [T <: comparable java.lang.integer.valueof succ comp>
def inclusive[T <: Comparable[T]](
start: T,
finish: T,
succ: (T) => T,
comp: (T, T) => Int
): Seq[T] = {
val ret = new ArrayBuffer[T]
var value: T = start
while (comp(value, finish) <= 0) {
ret += value
value = succ(value)
}
ret.toSeq
}
private def comp[T <: Comparable[T]](a: T, b: T) = {
if (a != null)
a.compareTo(b)
else if (b == null) 0
else -1
}
private def compInt(a: Int, b: Int) = {
a - b
}
def inclusive[T <: Comparable[T]](
start: T,
finish: T,
succ: (T) => T
): Seq[T] = {
inclusive(start, finish, succ, comp[T])
}
def inclusive(start: util.Date, finish: util.Date): Seq[util.Date] = {
inclusive(start, finish, succDate, comp[Date])
}
def inclusive(start: String, finish: String): Seq[String] = {
inclusive(start, finish, succString, comp[String])
}
private def succ(x: java.lang.Integer): java.lang.Integer = x + 1
private def comp(
x: java.lang.Integer,
y: java.lang.Integer
): java.lang.Integer = x - y
def inclusive(start: Int, finish: Int): Seq[Int] = {
inclusive(
java.lang.Integer.valueOf(start),
java.lang.Integer.valueOf(finish),
succ,
comp
).map(_.toInt)
}
【问题讨论】:
-
@LuisMiguelMejíaSuárez 同意,一旦我在 scala 2.12.x 上运行它,我将重构它:)。这段代码是一个java开发者多年前写的!
标签: scala