偷窥AbstractCollection类的toString方法,没看懂,求解

偷看AbstractCollection类的toString方法,没看懂,求解
public String toString()
  {
    Iterator localIterator = iterator();
    if (!(localIterator.hasNext()))
      return "[]";
    StringBuilder localStringBuilder = new StringBuilder();
    localStringBuilder.append('[');
    while (true)
    {
      Object localObject = localIterator.next();
      localStringBuilder.append((localObject == this) ? "(this Collection)" : localObject);
      if (!(localIterator.hasNext()))
        return ']';
      localStringBuilder.append(',').append(' ');
    }
  }

set的toString返回的是[01,02,03...]结构的字符串,也就是说如果写成return localStringBuilder+"]",返回字符串就ok了,而这里没有返回字符串,返回']'字符,而没有报错。我把这段代码复制到自己的工程中就报错,这是怎么回事?不该偷看,真诡异!
------解决思路----------------------
这是JDK1.6的AbstractCollection类的toString方法
    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(", ");
}
    }