首页 > 解决方案 > 如何允许 ArrayList 删除添加的对象而不覆盖或使其不可变

问题描述

伙计们,我创建了一个 ArrayList,但我不想让它不可变。我只是寻求找到一个解决方案,以解决如何不允许 ArrayList 删除对象。

public final class EMailArchive {

    private final String name;
    private final ArrayList <EMail> emailList;
    private final LocalDate date;


    public EMailArchive(String name, ArrayList <EMail> emailList) {
        this.name = name;
        this.emailList = emailList;
        date = LocalDate.now();
    }

    public String getName() {
        return name;
    }

    public LocalDate getDate( ) {
        return date;
    }

    public List <EMail> getEMailList() {
        return emailList;
    }

    public void addEMailToArchive(final EMail mail) {
        emailList.add(mail);
        // the mail added to the list shall not be removed, but how do i do that
    }

}

标签: javaobjectarraylist

解决方案


一种方法是实现覆盖删除方法的 ArrayList 的子类

class myArrayLit extends ArrayList {

    public myArrayList() {
        super();
    }

    @Override
    public remove(int index) {}

}

这是一个基本示例,还有更多方法可以覆盖,以实现您的目标。


推荐阅读