class Hoge{
public static void main(String args[]){
ArrayList<A> list = new ArrayList<A>();
}

public static void myFunc(ArrayList<B> list){
list.add(new B());
list.add(new C());
}

}

class A{ ・・・ }
class B extends A{ ・・・ }
class C extends B{ ・・・ }

ジェネリックスの質問ですが、Superクラスを指定すれば子クラスは問題なく設定できるなら
myFuncの部分を
public static void myFunc(ArrayList<? extends B> list)
と書く必要がないと思います。

ジェネリックスのワイルドカードって必要なん?