我有一个设计问题。下面是时间戳Interface良好的泛型设计
/**
* <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到l.add(elem)
将期待一个TimeStamp<DefaultTimeStamp>
这是错误的。
的声明:public class TimeList<TimeStamp<T>> implements List<TimeStamp<T>>
会给编译时错误
应该是什么我TimeList<Type>
的声明?最终它只是只包含时间戳
因为添加任何东西名单将取决于它的时间戳。 – Jatin
你是否希望TimeList包含TimeStamp对于任何T的特定T? –
是的。这是计算所需的 – Jatin