加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 引用List的列表

发布时间:2020-12-15 08:42:17 所属栏目:Java 来源:网络整理
导读:如果我有一个A类,其中包含A类儿童的List public Class A{ protected ListA children = new ArrayListA(); ...} 那么在子类B中是否可以拥有另一个类C的子级并创建对A类子列表的引用? A类具有其他类想要使用的方法,例如送孩子去.但是,A类是一般类,B和C更具体.
如果我有一个A类,其中包含A类儿童的List

public Class A
{
    protected List<A> children = new ArrayList<A>();
    ...
}

那么在子类B中是否可以拥有另一个类C的子级并创建对A类子列表的引用? A类具有其他类想要使用的方法,例如送孩子去.但是,A类是一般类,B和C更具体.因此,为了使代码的读取更容易并避免大量的类型转换,我希望超类的List能够引用子类的List.

因此,当我更新otherChildren时,子列表也将更新.我想在下面的示例中执行某些操作,但这样做不起作用,也无法进行转换(children =(List< A>)otherChildren).

但无论如何要实现这一目标吗?我真的很想避免所有的类型转换,否则我会得到.

public Class B extends A
{
    private List<C> otherChildren = new ArrayList<C>();

    public B()
    {
        children = otherChildren;
        ...
        // Modification of otherChildren will result in the same
        // modification in children
    }
}

public Class C extends A
{
     ...
}

解决方法

您所要做的就是将A类中的子项声明更改为:

protected List<? extends A> children = new ArrayList<A>();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读