この見積もりフォームによるとhttp://www.onjava.com/pub/a/onjava/excerpt/javagenerics_chap05/index.html?page=2
すべてのパラメーター化された型は、対応する未加工の型のサブタイプであるため、未加工の型が期待される場所にパラメーター化された型の値を渡すことができます。通常、サブタイプの値が予期される場所にスーパータイプの値を渡すとエラーになりますが、Java では、パラメーター化された型が予期される場所に生の型の値を渡すことが許可されています 。未チェックの変換警告。たとえば、前者は後者のサブタイプであるため、 type の値を type
Stack<E>
の変数に割り当てることができます。Stack
タイプ Stack の値を タイプ の変数に代入することもできますがStack<E>
、これにより未チェックの変換警告が生成されます。
このコードは真でなければなりません
public class Trial
{
static void t(Stack<Integer> a )
{
}
public static void main( String[] args )
{
t( new s());
}
}
class s{
}
class Stack< T > extends s {
}
t( new s());でエラーです。 問題を解決する方法ではなく、エラーが発生する理由を尋ねています。