私はJavaでジェネリックを学びました。ジェネリック型、生の型、境界型パラメーター、および型推論を理解できます。ジェネリックでワイルドカードを学びました。ワイルドカードは?
型引数として未知の型を表します。クラスを として定義してCompany
いますが、コンパイラはそれが未定義の型パラメーターであると通知します。メソッドを渡しList
たのですが、ここでエラーは発生しません。ワイルドカードを使用する必要がある場所とその目的を教えてください。
Class Company<?> // error is occurred at this line
{
void sum(List<? extends Number> ls) //does not occur here
{ }
}
これらの違いを説明してもらえますか?