对集合类AbstractCollection借口toString方法的this关键字理解

来源:互联网 发布:com域名不备案能解析吗 编辑:程序博客网 时间:2024/04/20 09:10


    /**
     * Returns a string representation of this collection.  The string
     * representation consists of a list of the collection's elements in the
     * order they are returned by its iterator, enclosed in square brackets
     * (<tt>"[]"</tt>).  Adjacent elements are separated by the characters
     * <tt>", "</tt> (comma and space).  Elements are converted to strings as
     * by {@link String#valueOf(Object)}.
     *
     * @return a string representation of this collection
     */
    public String toString() {
        Iterator<E> 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(", ");
}
    }




ArrayList<ArrayList> a=new ArrayList<ArrayList>();
a.add(a);
System.out.println(a);
时会输出
[(this Collection)]

可见当一个集合类的泛型是其自身
并且把自己假如到自己的集合中去
就会打印 “this Collection”



1 0
原创粉丝点击