How can I convert a long to int in Java?

I have a long value in Java that I want to convert to an int. What’s the correct and safe way to handle long to int java conversion, especially if the long might exceed the int range?

Honestly, when I know for sure that the long value sits safely within the int range, I just cast it directly:

int myInt = (int) myLong;  

It works, but here’s the catch: if the value exceeds the range, Java doesn’t complain, it quietly truncates the number. So when working with long to int java conversions, I always pause and double-check the value if there’s even a slight risk of overflow."

Totally agree with @charity-majors. That cast works, but that silent truncation can cause painful bugs down the line, I’ve learned that the hard way. Sometimes I throw in a quick conditional before casting when using long to int java logic:

if (myLong >= Integer.MIN_VALUE && myLong <= Integer.MAX_VALUE) {  
    int myInt = (int) myLong;  
} else {  
    // Handle safely  
}  

It adds a safety layer without getting too heavy, especially if you’re not ready to build a full utility method."

Yep, been there. In larger codebases or shared libs, I usually wrap this in a reusable utility for clarity and consistency. For long to int java conversions that must be safe, this is my go-to:

public static int safeLongToInt(long value) {  
    if (value < Integer.MIN_VALUE || value > Integer.MAX_VALUE) {  
        throw new ArithmeticException("Overflow: long to int");  
    }  
    return (int) value;  
}  

It makes the intent super clear and keeps the logic DRY, no more repeating the same range checks all over the place.