• 1000 Теперь, если я проверю реализацию этого createElement (), есть класс разработчика NodeImpl. java, в котором есть этот метод, который используется для создания объекта Element для возврата к методу вызывающего объекта:
private static Node getCachedImpl(long peer) {
if (peer == 0)
return null;
int hash = hashPeer(peer);
SelfDisposer head = hashTable[hash];
SelfDisposer prev = null;
for (SelfDisposer disposer = head; disposer != null;) {
SelfDisposer next = disposer.next;
if (disposer.peer == peer) {
NodeImpl node = (NodeImpl) disposer.get();
if (node != null) {
// the peer need to be deref'ed!
NodeImpl.dispose(peer);
return node;
}
if (prev != null)
prev.next = next;
else
hashTable[hash] = next;
break;
}
prev = disposer;
disposer = next;
}
NodeImpl node = (NodeImpl)createInterface(peer);
SelfDisposer disposer = new SelfDisposer(node, peer);
Disposer.addRecord(disposer);
disposer.next = head;
hashTable[hash] = disposer;
if (3 * hashCount >= 2 * hashTable.length)
rehash();
hashCount++;
return node;
}
Я пытаюсь понять, в какой ситуации этот метод может вернуть значение null. Я не хочу ставить нулевые проверки, если они не нужны, так как это выглядит некрасиво, и мы часто вызываем метод document.createElement ().
Но я не могу понять этот logi c peer == 0. Это единственный возможный случай, когда этот метод может возвращать null. Может ли кто-нибудь помочь мне понять, что если для вызова document.createElement () передается действительная строка, может ли она вернуть null? и какова будет эта ситуация.