【发布时间】:2012-11-12 03:30:15
【问题描述】:
我需要创建一个基本上只包含时间戳的列表的类。以下是TimeStamp 特征:
trait TimeStamp[T <: Comparable[T]] extends Comparable[TimeStamp[T]]
{
def getTimeStamp:T;
def compareTo(to:TimeStamp[T]) =this.getTimeStamp.compareTo(to.getTimeStamp)
}
TimeStamp 具有可比性。并且getTimeStamp 返回类型也具有可比性。例如,它可以是 Long 或 Date。上述特征的一个示例实现是:
class FileTimeStamp(file:File) extends TimeStamp[Date]
{
val time:Long = file.lastModified();
val date:Date = new Date(time);
override def getTimeStamp:Date = date;
def getFile:File = file;
}
现在的问题是我想要一个没有参数的名为TimeList 的类。只能将TimeStamps添加到列表中。
class TimeList[T] extends ArrayList[TimeStamp[????]]
上面应该是我的????。理想情况下,我想要[T <: Comparable[T]] 之类的东西。即 Long 或 Date 或任何 TimeStamp 类型。
【问题讨论】:
-
T上的TimeList错了吗? -
这就是问题:) 基本上我的 TiemList 类声明应该如何。
-
如果您将
T限制为Comparable[T]您的代码可以正常工作。您不喜欢此解决方案的哪些方面? -
我需要提到类型。我希望用户写 val j:TimeList[FileTimeStamp] 而不是 val j:TimeList[Date]