我有一个设计问题。下面是时间戳接口
/**
* <T> Type of Timestamp. For ex: Date, long, Calendar etc
*
*/
public interface TimeStamp<T> extends Comparable<TimeStamp<T>>
{
/**
* Returns the timestamp.
* @return
*/
public T getTimeStamp();
}
我基本上想要一个List
只能包含时间戳的类。在列表中添加任何内容基本上取决于时间戳。我的 List 类声明应该如何。
如果我决定组合,代码将如下所示:
public class TimeList<T> implements List<TimeStamp<T>>
{
private List<TimeStamp<?>> list = new ArrayList<TimeStamp<?>>();
//other list methods who will return based on list above
.....
}
但以上没有意义。例如,如果我有一个类DefaultTimeStamp implments TimeStamp<Long>
并将 TimeList 实例化为
TimeList<DefaultTimeStamp> l = new TimeList<DefaultTimeStamp>();
然后anycall tol.add(elem)
将期待一个TimeStamp<DefaultTimeStamp>
错误的。
声明:public class TimeList<TimeStamp<T>> implements List<TimeStamp<T>>
会给出编译时错误
my 的声明应该是什么TimeList<Type>
?最终它只是一个仅包含时间戳的列表