2017-07-05 17 views
0

GenericCollectionジェネリックを明らかにしたいと思います。私はこのエラーを取得する:Javaジェネリック "コレクションに同じ消去があります"エラー

name clash: add(T) in GCollection and add(java.lang.Object) in 
Collection have the same erasure, yet neither overrides the other 

コレクション

public class Collection { 
    public Object get(int i){ 
     return null; 
    } 
    public void add(Object o){ } 
} 

GenericCollection

public class GenericCollection<T> extends Collection { 
    public T get(int i){ 
     return (T) super.get(i); 
    } 

    public void add(T o){ 
     super.add(o); 
    } 
} 

たぶん、いくつかのアイデアを得ましたか。

+0

ジェネリックコレクションがコンクリートコレクションを拡張するのはなぜですか? IMHOこれは意味をなさない... – home

+0

これは機能的には全く同じことをしています - あなたは 'Collection 'を直接宣言できます。 – Ares

+0

これはエクササイズです。私はCollectionをジェネリックにする必要があります。コレクションは機能しません – Marcce

答えて

-1

GenericCollectionで拡張されているCollectionが実際のJavaコレクション-であると思われます。そのため、既に組み込まれているJavaコレクションに存在するメソッドをオーバーライドしようとしています。

簡単に言うと、この動作を簡単に引き起こす可能性があるため、既存のJavaクラスを完全に再定義しないでください。

関連する問題