¿Por qué se utiliza aserción en el método Integer.valueOf de la clase Integer?
Estaba investigando cómoInteger
La clase en realidad usa objetos en caché, y encontré el siguiente código en elInteger.valueOf
método:
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);
}
Mi pregunta es:
Cuál es el uso deassert IntegerCache.high >= 127;
yo lei esoafirmar proporciona una manera efectiva de detectar y corregir errores de programación. Pero este es un código de tiempo de ejecución, ¿por qué alguien usaría afirmar?Y cuando arrojaráAssertionError
¿en este escenario?