我一直试图扩展ArrayList类没有太大的成功.我想扩展它,并能够参数化它.
通常你有类似的东西
ArrayListlist = new ArrayList ();
我想要
MyListlist = new MyList ();
简单地扩展ArrayList不起作用.
public class MyList extends ArrayList ...
当我尝试使用它时,我得到了错误
MyList类型不是通用的; 它不能使用参数
进行参数化
我尝试过变种
public class MyList extends ArrayList
没有成功,如果我使用类名后面的子对象它似乎工作,但由于某种原因隐藏子对象类中的方法.
任何有关如何使这项工作正常的想法或建议都值得赞赏.
您需要为ArrayList
's type参数指定一个类型.对于泛型类型参数,这T
是相当常见的.由于编译器不知道是什么T
,因此需要添加一个类型参数,MyList
以便传入类型.因此,您得到:
public class MyListextends ArrayList
此外,您可能需要考虑实现List
和委派给ArrayList
,而不是继承自ArrayList
."赞成对象组合而不是类继承.[ Design Patterns pg.20]"