2009-11-03 11 views
6

Ja, es ist ein trivialer Code zum schreiben, aber ich frage mich immer noch, ob es einen eingebauten Ersatz gibt.Gibt es ein Java-Äquivalent zu C# 'checked' Schlüsselwort?

Hier ist der 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; 
} 

Der Code in C# wäre:

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

+1, weil ich nie wirklich haben, bevor die 'geprüft' Schlüsselwort benötigen. Hier ist die MSDN ref incase jemand anderen interessiert ist: http://msdn.microsoft.com/en-us/library/74b4xzyw(VS.71).aspx – CodingWithSpike

+0

Wow, gibt es eigentlich ein * Schlüsselwort * für das in C#? Ist das wirklich etwas, das du so oft tust, dass ein Keyword in Ordnung ist? –

+0

Interessanterweise gibt es sowohl "checked" als auch "unchecked" Schlüsselwörter, und wenn keiner verwendet wird, wird der Standardwert durch die Option compile festgelegt. –

Antwort

4

Nein. Java hat keinen automatischen Überlauf oder Informationsverlust wie C#.

Verwandte Themen