Я читаю код Hashtable. и я смущен о методе toString()
, код выглядит так:Возможно ли положение «ключ == это»?
public synchronized String toString()
{
int max = size() - 1;
if (max == -1)
return "{}";
StringBuilder sb = new StringBuilder();
Iterator<Map.Entry<K,V>> it = entrySet().iterator();
sb.append('{');
for (int i = 0; ; i++)
{
Map.Entry<K,V> e = it.next();
K key = e.getKey();
V value = e.getValue();
// Is "key == this" possible ? What the "this" stands for ?
sb.append(key == this ? "(this Map)" : key.toString());
sb.append('=');
sb.append(value == this ? "(this Map)" : value.toString());
if (i == max)
return sb.append('}').toString();
sb.append(", ");
}
}
Таким образом, если код не проверяет «равен ключ это» или нет, может быть, метод ToString() может быть бесконечный цикл ?
Таким образом, если код не проверяет «равен ключ это» или нет, может быть, Метод toString() может быть бесконечным циклом? – huashui