0

この見積もりフォームによるとhttp://www.onjava.com/pub/a/onjava/excerpt/javagenerics_chap05/index.html?page=2

すべてのパラメーター化された型は、対応する未加工の型のサブタイプであるため、未加工の型が期待される場所にパラメーター化された型の値を渡すことができます。通常、サブタイプの値が予期される場所にスーパータイプの値を渡すとエラーになりますが、Java では、パラメーター化された型が予期される場所に生の型の値を渡すことが許可されています 。未チェックの変換警告。たとえば、前者は後者のサブタイプであるため、 type の値を typeStack<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());でエラーです。 問題を解決する方法ではなく、エラーが発生する理由を尋ねています。

4

2 に答える 2