Buongiorno, un dubbio che deriva dallo studio del De Cesari Sio. Introduce un blocco statico che serve a imporre che le asserzioni siano abilitate:
static {
boolean assertsEnabled = false;
assert assertsEnabled = true;
if (!assertsEnabled)
throw new RuntimeException("Asserts must be enabled! ");
}
allora all'inizio crea la variabile booleana assertsEnabled, inizializzata a false. Poi dice che il programma deve avere assertsEnabled= true, altrimenti lancia la RuntimeException. Due domande:
1. che cosa succede tra la riga
boolean assertsEnabled=false
e
assert assertsEnabled = true;
? Perchè dovrebbe cambiare il valore booleano della variabile?
2.metterci la RuntimeException serve perchè non avrebbe senso mettere
assert assertsEnabled = true:"Asserts must be enabled! ";
dato che se le asserzioni fossero disabilitate non mi ritornerebbe questo messaggio, giusto?