具有泛型集合的类的Java适当扩展设计

Yon*_*Nir 6 java arraylist

假设我得到了A,B,C类,这样可以B扩展AC扩展A.

现在,我得到2个不同的类别,让打电话给他们MyClassB,并MyClassC与成员ArrayList<B>ArrayList<C>respectfuly.

由于许多操作在MyClassBMyClassC相同并且仅在不同类型的ArrayList上完成,我想创建一个新的抽象类MyClassA,它将ArrayList<A>对两个classe 执行相同的操作,因为A这是操作的通用部分是一样的.

所以我尝试在新MyClassA类中创建一个方法,它接收一个列表作为参数,并且应该在该列表上进行操作.但是,我无法传递ArrayList<B>给它期望的方法ArrayList<A>.

那么,为了在不同的类中保持相同的操作而不重复2个不同的类中的代码,我该怎么办?

Zho*_*gYu 3

class MyClassA<T extends A>
{
    ArrayList<T> list;

    public MyClassA(ArrayList<T> list)
    {
        this.list = list;

...

class MyClassB extends MyClassA<B>
{
    MyClassB(ArrayList<B> list)
    {
         super(list);
Run Code Online (Sandbox Code Playgroud)