기본적으로 타임 스탬프 만 포함하는 클래스 인 클래스를 만들어야합니다.스칼라에서 타입 선언
trait TimeStamp[T <: Comparable[T]] extends Comparable[TimeStamp[T]]
{
def getTimeStamp:T;
def compareTo(to:TimeStamp[T]) =this.getTimeStamp.compareTo(to.getTimeStamp)
}
TimeStamp
는 비교할 수 : 아래 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
유형이 무엇이든간에
'TimeList'의 'T'가 잘못 되었나요? – sschaef
그게 질문입니다 :) 기본적으로 TiemList의 클래스 선언이 어떻게되어야합니다. – Jatin
'T'를'Comparable [T]'로 낮추면 코드가 잘 동작합니다. 이 솔루션에 대해 싫어하는 점은 무엇입니까? – sschaef