0

基本的にタイムスタンプのみを含むリストであるクラスを作成する必要があります。以下はその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タイプです。

4

1 に答える 1

3
class TimeList[T <: Comparable[T]] extends ArrayList[TimeStamp[T]]

EDIT: given your comment, you could do

class TimeList[T <: TimeStamp[_]] extends ArrayList[T]

but this type is going to be harder to use.

于 2012-11-11T14:22:58.240 に答える