割り当てのバッグとリストを実装することに加えて、次のステップは順序付けられたバージョンを作成することです。要件は、正しい型パラメーターと制約を使用してパラメトリックインターフェイスOrderedCollectionを指定することです。私の問題はそれを実装することです。
インターフェイスCollection <E>
が存在し、次のように定義されます
public interface Collection<E> extends Iterable<E>{
public void add(E e);
public void remove(E e);
public boolean contains(Object e);
public void clear();
public int size();
public boolean isEmpty();
public Object[] toArray();
}
それはクラスによって実装されます
public class UnorderedList<E> implements Collection<E>
public class UnorderedBag<E> extends UnorderedList<E> implements Collection<E>
構造が機能していて、ソートされたバージョンを実装しようとしています。これを行い、要件の一部を満たすために、私は次のように作成OrderedCollection
しました
public interface OrderedCollection <E extends Comparable<E>> {
public int compareTo(E e);
}
ですでに定義されているメソッドを拡張しておりCollection
、必要な新しい機能はcompareTo()
メソッドだけだからです。
しかし、OrderedList
宣言で実装しようとすると
public class OrderedList<E> extends UnorderedList<E> implements OrderedCollection<E>
エラーが発生しました
Bound mismatch: The type E is not a valid substitute for the bounded parameter <E
extends Comparable<E>> of the type OrderedCollection<E>
エラーメッセージを理解しているので、インターフェイス宣言で指定されたものの有効な代替となるパラメータタイプを指定する必要があります。しかし、私は試しました
OrderedCollection<E extends Comparable<E>>
はdeclarerを実装しますが、extendsに構文エラーが存在するという警告が表示されます。
ここで要件を満たすにはどうすればよいですか?