Java中集合对象名是集合的首地址吗?为什么打印出来是集合每个元素的首地址?

2025-01-02 23:46:25
推荐回答(3个)
回答1:

是这样的 我来告诉你 ,定义了一个ArrayList的容器array 然后这个容器里只能放Goods类型的变量 GOOds这个类里面的对象
如果你不使用泛型 就会调用ArrayList他爷爷的toString 因为ArrayList没有 他爸爸也没有 只能他爷爷用toString
但是你使用泛型了 就会调用GOODs里面的toString 所以你只需要在GOODs里面覆盖一个toSTring方法就行

回答2:

以ArrayList为例
ArrayList的父类AbstractList的父类AbstractCollection里面有实现toString()

public String toString() {
Iterator i = iterator();
if (!i.hasNext())
return "[]";

StringBuilder sb = new StringBuilder();
sb.append('[');
for (;;) {
E e = i.next();
sb.append(e == this ? "(this Collection)" : e);
if (!i.hasNext())
return sb.append(']').toString();
sb.append(", ");
}
}

回答3:

因为你写的商品类没有重写toString
而为什么打印出来的地址,因为,你打印的时候默认调用商品类的父类Object类 而且打印调用的方法toString方法也是父类的 因此返回的是内存地址