Tasarım sorum var. Aşağıda TimeStamp ArayüzJenerikte İyi Tasarım
Ben temelde sadece damgaları içerebilir birList
sınıf var istiyorum
/**
* <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();
}
olduğunu. Listeye herhangi bir şey eklemek temel olarak zaman damgasına bağlı olacaktır. Liste sınıf beyannamem nasıl olmalı? Ben kompozisyon için karar verirseniz
, kod gibi görünecektir:
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
.....
}
Ama yukarıda mantıklı değil. Örneğin ben bir sınıf DefaultTimeStamp implments TimeStamp<Long>
varsa ve sonra yanlış bir TimeStamp<DefaultTimeStamp>
bekliyoruz l.add(elem)
için Anycall
TimeList<DefaultTimeStamp> l = new TimeList<DefaultTimeStamp>();
olarak TimeList örneğini.
beyanı: public class TimeList<TimeStamp<T>> implements List<TimeStamp<T>>
derlemek benim TimeList<Type>
beyanı olmalıdır kaçta hatası
verecekti? Sonuçta bu size TimeStamp<Long>
her türlü eklemek mümkün olmasını istiyorsanız
TimeList<DefaultTimeStamp> l = new TimeList<DefaultTimeStamp>();
yapmak istiyorum neden anlamıyorum sadece zaman damgalarını
Çünkü şu şekildedir:
Ve TimeList beyanıdır . – Jatin
TimeList'in herhangi bir T için herhangi bir T için TimeStamp'u içermesini ister misiniz? –
Evet. Bu hesaplamalar için gereklidir – Jatin