次の方法で ArrayLinearList クラスを実装しました
public class ArrayLinearList<T> implements LinearList<T>, Iterable<T>
クラスメンバーを含む
protected T[] element
クラスの機能を拡張するために、最初のクラスから継承する新しいクラスを作成します
class SuperList<T extends Comparable<T>> extends ArrayLinearList<T>
ここで、型 T が Comparable インターフェースを実装していることを確認します (これは変更できません)。
SuperList クラスには、次のメソッドがあります
public void replace( int pedro, T maria ){
element[ pedro ] = maria;
}
メソッドの行は次のエラーを生成します
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Comparable;
しかし、次の方法でクラスを宣言すると、この問題はなくなります (ただし、この方法では、クラス オブジェクトを比較できなくなります)。
class SuperList<T> extends ArrayLinearList<T>{
この問題を解決するための助けをいただければ幸いです。クラス \ [ ArrayLinearList を変更することは許可されていません。クラス SuperList だけです。
前もって感謝します。