質問: new Hashtable(); public void put(int i,T t){ v.put(i,t); } public T get(int i){ return v.get(i); } public Collection values(){ return v.values(); } } class B{} class C extends B{} -------------------------------------- これだと、*1は通るのですが、*2でエラーになります。 つまり、Generics型の型指定を取り払った場合、 単純な型指定TはBとして扱われますが、Collectionは、CollectionではなくCollectionになってしまいます。 Collectonになってくれると助かったのですが。 これは、やはりこのような仕様なのでしょうか?。
回答: Genericsって実行時ではなく、あくまでコンパイル時のチェックだしねえ。 なくした時点で、内部はObjectもあり得るってことなのかも。