"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso converter Long para Int com segurança em Java?

Como posso converter Long para Int com segurança em Java?

Publicado em 2024-11-09
Navegar:960

How Can I Safely Cast Long to Int in Java?

Conversão segura de Long para Int em Java: uma solução abrangente

Ao trabalhar com tipos numéricos em Java, é crucial garantir que a conversão operações não resultam em perda de dados. Isso é especialmente importante ao converter valores longos para int, pois a precisão de long pode exceder a de int.

Java 8: simplificando o processo

Anterior ao Java 8 , lançar com segurança long para int exigiu uma verificação tediosa para verificar se a conversão não alterou o valor. No entanto, com a introdução do Java 8, foi adicionado um novo método que agiliza esse processo:

import static java.lang.Math.toIntExact;

long foo = 10L;
int bar = toIntExact(foo);

O método toIntExact lança uma ArithmeticException se a conversão resultar em um overflow, garantindo que a integridade dos dados seja mantida.

Métodos adicionais seguros contra overflow

Java 8 também introduziu vários outros métodos seguros contra overflow. Todos esses métodos terminam com "exato" e fornecem a seguinte funcionalidade:

  • Math.incrementExact(long): incrementa um valor longo em um.
  • Math.subtractExact(long, long ): subtrai um valor longo de outro.
  • Math.decrementExact(long): diminui um valor longo em um.
  • Math.negateExact(long): nega um valor longo.
  • Math.subtractExact(int, int): Subtrai um valor int de outro.

Conclusão

Usando o método toIntExact e outros overflow- métodos seguros adicionados no Java 8, os desenvolvedores podem converter valores longos em int com segurança, sem sacrificar a precisão dos dados. Isto é crucial para manter a integridade dos cálculos numéricos e garantir a confiabilidade do código.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3