Warum wird assert in der Integer.valueOf-Methode der Integer-Klasse verwendet?
Ich grub in, wie dieInteger
Klasse verwendet tatsächlich zwischengespeicherte Objekte, und ich fand den folgenden Code in derInteger.valueOf
Methode
public static Integer valueOf(int i) {
assert IntegerCache.high >= 127;
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}
Meine Frage ist
wozu benutzt manassert IntegerCache.high >= 127;
Ich las dasassert bietet eine effektive Möglichkeit, Programmierfehler zu erkennen und zu korrigieren.. Aber das ist Laufzeitcode, warum sollte also jemand assert verwenden?nd wann wird es werfenAssertionError
In diesem Szenario