假设我得到了A,B,C类,这样可以B扩展A并C扩展A.
现在,我得到2个不同的类别,让打电话给他们MyClassB,并MyClassC与成员ArrayList<B>和ArrayList<C>respectfuly.
由于许多操作在MyClassB且MyClassC相同并且仅在不同类型的ArrayList上完成,我想创建一个新的抽象类MyClassA,它将ArrayList<A>对两个classe 执行相同的操作,因为A这是操作的通用部分是一样的.
所以我尝试在新MyClassA类中创建一个方法,它接收一个列表作为参数,并且应该在该列表上进行操作.但是,我无法传递ArrayList<B>给它期望的方法ArrayList<A>.
那么,为了在不同的类中保持相同的操作而不重复2个不同的类中的代码,我该怎么办?
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)
| 归档时间: |
|
| 查看次数: |
118 次 |
| 最近记录: |