デザインに関する質問があります。以下は、タイムスタンプインタフェースジェネリック医薬品の良いデザイン
/**
* <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
クラスを持つようにしたいです。リストに何かを追加するのは基本的にタイムスタンプに依存します。どのように私のリストクラスの宣言をする必要があります。
私は、組成物のために決定した場合、コードは次のようになります。
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>
を持っている場合。そして、間違っているTimeStamp<DefaultTimeStamp>
を期待していますl.add(elem)
にエニコール
TimeList<DefaultTimeStamp> l = new TimeList<DefaultTimeStamp>();
としてTimeListをインスタンス化します。
の宣言:public class TimeList<TimeStamp<T>> implements List<TimeStamp<T>>
は私のTimeList<Type>
の宣言がどうあるべきか、コンパイル時にエラーに
を与えるだろうか?最終的に、それはあなたがTimeStamp<Long>
のいずれかの種類を追加することができるようにしたい場合は
TimeList<DefaultTimeStamp> l = new TimeList<DefaultTimeStamp>();
をしたい理由を私は理解していないだけで、タイムスタンプ
リストには何も追加すると、そのタイムスタンプに依存しているため。 – Jatin
TimeListにタイムスタンプが含まれていますか? –
はい。これは計算に必要です – Jatin