Maison >Java >javaDidacticiel >Comment pouvez-vous en toute sécurité lancer un long vers un int en Java ?

Comment pouvez-vous en toute sécurité lancer un long vers un int en Java ?

DDD
DDDoriginal
2024-10-26 14:59:31640parcourir

How Can You Safely Cast a Long to an Int in Java?

Lancer Long en Int en toute sécurité en Java

Lancer Long en Int peut potentiellement entraîner une perte d'informations. Pour éviter cela, il est essentiel de vérifier que le casting ne modifie pas la valeur.

Approche traditionnelle :

Une approche courante consiste à lancer un int puis à revenir en arrière. à un long pour vérifier l'égalité. Cependant, cette méthode a une limitation : elle échoue pour les valeurs supérieures à 2^31-1.

Solution Java 8 :

Java 8 a introduit une solution plus robuste : Math.toIntExact(long). Cette méthode lève une ArithmeticException si la conversion entraîne un débordement.

<code class="java">long foo = 10L;
int bar = Math.toIntExact(foo); // Throws ArithmeticException on overflow</code>

Autres méthodes anti-débordement :

En plus de toIntExact, Java 8 a également ajouté plusieurs autres méthodes sécurisées contre les débordements qui se terminent par « exact ». Ces méthodes incluent :

  • Math.incrementExact(long)
  • Math.subtractExact(long, long)
  • Math.decrementExact(long)
  • Math.negateExact(long)
  • Math.subtractExact(int, int)

L'utilisation de ces méthodes garantit l'intégrité de vos données et évite les débordements d'entiers inattendus.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn