2009-11-03 180 views
6

是的,这是一段很小的代码,但我仍然怀疑是否有内置替换。是否存在与C#的'checked'关键字等效的Java?

下面的代码:

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

1,因为我从来没有真正需要之前的“检查”关键字。这里是其他人感兴趣的MSDN ref incase:http://msdn.microsoft.com/en-us/library/74b4xzyw(VS.71).aspx – CodingWithSpike 2009-11-03 18:45:55

+0

哇,在C#中实际上有一个*关键字*?这真的是你经常这样做的一个关键词是为了什么? – 2009-11-04 00:41:44

+0

更有趣的是,有'checked'和'unchecked'两个关键字,如果两个都没有使用,默认情况是由编译选项设置的。 – 2009-11-04 00:47:22

回答

4

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

相关问题