是否有一个Java等同于C#的'checked'关键字?

时间:2009-11-03 18:27:29

标签: c# java casting

是的,这是一段很简单的代码,但我仍然想知道是否有内置的替代品。

以下是代码:

/**
 * 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;
}

C#中的代码是:

int foo;
long bar = ...;
checked
{
  foo = bar;
}

3 个答案:

答案 0 :(得分:8)

不,没有相应的,请查看此keyword chart

答案 1 :(得分:7)

(预发布)开源Guava库具有您寻求的方法:

Ints.checkedCast(long)

答案 2 :(得分:4)

没有。 Java没有像C#那样自动溢出或丢失信息检查。