tags:

views:

202

answers:

3

Yes, it's a trivial piece of code to write, but I still wonder if there's a built-in replacement.

Here's the code:

/**
 * Cast x to int, throw an exception if there's loss of information
 */
public static int safeLongToInt(long x)
{
  int result = (int) x;
  if (result != x)
    throw new RuntimeException("long doesn't fit in an int: " + x);

  return result;
}

The code in C# would be:

int foo;
long bar = ...;
checked
{
  foo = bar;
}
+5  A: 

No there's no equivalent, check out this keyword chart.

Joseph
+2  A: 

No. Java doesn't have any automatic overflow or loss of information checking like C# does.

Ben S
+6  A: 

The (pre-release) open-source Guava library has the method you seek:

Ints.checkedCast(long)

Kevin Bourrillion