"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Java에서 Long을 Int로 안전하게 캐스팅하려면 어떻게 해야 합니까?

Java에서 Long을 Int로 안전하게 캐스팅하려면 어떻게 해야 합니까?

2024-11-09에 게시됨
검색:904

How Can I Safely Cast Long to Int in Java?

Java에서 Long을 Int로 안전하게 캐스팅: 포괄적인 솔루션

Java에서 숫자 유형으로 작업할 때 캐스팅이 제대로 이루어졌는지 확인하는 것이 중요합니다. 작업으로 인해 데이터가 손실되지 않습니다. 이는 long 값을 int로 캐스팅할 때 특히 중요합니다. long의 정밀도가 int의 정밀도를 초과할 수 있기 때문입니다.

Java 8: 프로세스 단순화

Java 8 이전 , long을 int로 안전하게 캐스팅하려면 캐스팅이 값을 변경하지 않았는지 확인하기 위해 지루한 검사가 필요했습니다. 그러나 Java 8이 도입되면서 이 프로세스를 간소화하는 새로운 메소드가 추가되었습니다.

import static java.lang.Math.toIntExact;

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

toIntExact 메서드는 캐스트로 인해 오버플로가 발생하는 경우 ArithmeticException을 발생시켜 데이터 무결성이 유지되도록 합니다.

추가 오버플로 안전 메서드

Java 8에서는 다른 오버플로로부터 안전한 메서드도 도입했습니다. 이러한 메소드는 모두 "exact"로 끝나고 다음 기능을 제공합니다.

  • Math.incrementExact(long): long 값을 1씩 증가시킵니다.
  • Math.subtractExact(long, long ): 다른 긴 값에서 하나의 긴 값을 뺍니다.
  • Math.decrementExact(long): 긴 값을 다음만큼 감소시킵니다. one.
  • Math.negateExact(long): 긴 값을 부정합니다.
  • Math.subtractExact(int, int): 다른 값에서 하나의 int 값을 뺍니다.

결론

toIntExact 메서드와 기타 오버플로 방지 메서드를 활용하여 추가됨 Java 8에서는 개발자가 데이터 정확성을 희생하지 않고도 긴 값을 int로 자신있게 캐스팅할 수 있습니다. 이는 수치 계산의 무결성을 유지하고 코드의 신뢰성을 보장하는 데 중요합니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3