实现java集合而不会丢失信息

时间:2016-09-28 08:11:32

标签: java collections

我有一个包含两个属性的类:

VBoxManage modifyvm $VM --nic1 bridged --bridgeadapter1 e1000g0

enter image description here

我希望这个类实现接口java.util.Collection,以便直接在BusinessObjectCollection对象上调用remove(),addAll()和其他一些方法。

所以我像这样修改我的课程:

@lombok.Data
public class BusinessObjectCollection<T> implements Serializable {
    protected List<T> elements;
    protected Integer totalCount;
    public BusinessObjectCollection() {
        this.elements = new ArrayList<>();
        this.totalCount = 0;
    }
}

我的问题是,如果我这样做,我的对象会丢失一些信息。我无法看到&#34;元素&#34;和&#34; totalCount&#34;属性。

enter image description here

是否可以使用Collection接口并保留此属性?

如果不是,是否有一个好的选择?

1 个答案:

答案 0 :(得分:2)

您正在IDE中查看功能。在你的情况下可能是IntelliJ。

当遇到Collection时,它只会显示集合的内容而不是实际的实现。这在大多数情况下非常有用,因为您使用的集合可能具有非常复杂的结构,例如HashSet。但是在开发自己的集合时,您希望在调试器中看到实际的工作方式。

在IntelliJ中,这被称为&#39;收集类的替代视图&#39;。 manual解释了如何禁用此功能。

在Eclipse中也可以使用(但默认情况下似乎已关闭)。该功能称为逻辑结构。可以使用变量视图中的切换按钮(&#39;显示逻辑结构&#39;)启用此视图。