我有一个包含两个属性的类:
VBoxManage modifyvm $VM --nic1 bridged --bridgeadapter1 e1000g0
我希望这个类实现接口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;属性。
是否可以使用Collection接口并保留此属性?
如果不是,是否有一个好的选择?
答案 0 :(得分:2)
您正在IDE中查看功能。在你的情况下可能是IntelliJ。
当遇到Collection
时,它只会显示集合的内容而不是实际的实现。这在大多数情况下非常有用,因为您使用的集合可能具有非常复杂的结构,例如HashSet
。但是在开发自己的集合时,您希望在调试器中看到实际的工作方式。
在IntelliJ中,这被称为&#39;收集类的替代视图&#39;。 manual解释了如何禁用此功能。
在Eclipse中也可以使用(但默认情况下似乎已关闭)。该功能称为逻辑结构。可以使用变量视图中的切换按钮(&#39;显示逻辑结构&#39;)启用此视图。