Éviter les erreurs de troncature lors de la conversion de long en int
Lors de la conversion d'une valeur longue en int en Java, il est crucial de s'assurer que la conversion n'entraîne pas de perte d'informations. Une façon d'y parvenir consiste à effectuer une vérification explicite, comme démontré dans l'implémentation donnée :
<code class="java">public static int safeLongToInt(long l) { int i = (int)l; if ((long)i != l) { throw new IllegalArgumentException(l + " cannot be cast to int without changing its value."); } return i; }</code>
Cependant, depuis Java 8, une solution plus idiomatique a été introduite :
Math .toIntExact()
Cette méthode permet une conversion sûre de long en entier en lançant une ArithmeticException en cas de débordement :
<code class="java">import java.lang.Math; ... long foo = 10L; int bar = Math.toIntExact(foo);</code>
Java 8 inclut également des méthodes "exactes" similaires pour diverses opérations arithmétiques, garantissant l'exactitude et évitant une perte de précision inattendue :
En utilisant ces méthodes, les développeurs peuvent lancer du long en toute confiance valeurs en int sans risque de perte de données ou d'exceptions d'exécution dues à un débordement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!