it-swarm.com.de

Unterschied zwischen der Umwandlung in String und String.valueOf

Was ist der Unterschied zwischen

Object foo = "something";
String bar = String.valueOf(foo);

und

Object foo = "something";
String bar = (String) foo;
79
Dropout

Die Umwandlung in eine Zeichenfolge funktioniert nur, wenn das Objekt tatsächlich ist eine Zeichenfolge:

Object reallyAString = "foo";
String str = (String) reallyAString; // works.

Es funktioniert nicht, wenn das Objekt etwas anderes ist:

Object notAString = new Integer(42);
String str = (String) notAString; // will throw a ClassCastException

String.valueOf() wird jedoch versuchen, das, was Sie übergeben, in eine String umzuwandeln. Es behandelt sowohl Grundelemente (42) als auch Objekte (new Integer(42), unter Verwendung von toString() ) dieses Objekts:

String str;
str = String.valueOf(new Integer(42)); // str will hold "42"
str = String.valueOf("foo"); // str will hold "foo"
Object nullValue = null;
str = String.valueOf(nullValue); // str will hold "null"

Beachten Sie insbesondere das letzte Beispiel: Wenn Sie null an String.valueOf() übergeben, wird die Zeichenfolge "null" zurückgegeben.

129
Joachim Sauer

String.valueOf(foo) ruft die .toString()-Methode von foo auf und ordnet das Ergebnis der bar zu. Es ist eine null- und typsichere Operation.

Die Besetzung weist foo der bar zu, wenn die Typen übereinstimmen. Andernfalls wirft der Ausdruck eine ClassCastException.

16
darijan

Beide erzeugen dieselbe Ausgabe im Fall von String.

Casting schlägt fehl, wenn das angegebene Objekt Not a string. ist.

4
Suresh Atta

Die String.valueOf-Methode wird verwendet, um die String-Darstellung ihres Parameterobjekts abzurufen. 

(String) Wert wandelt den Objektwert in String um.

Sie können die String.valueOf-Methode verwenden, um die String-Darstellung eines Objekts abzurufen, ohne sich um Nullreferenzen zu kümmern. Wenn Sie versuchen, String in eine Nullreferenz umzuwandeln, erhalten Sie eine NullPointerException. 

2
Syamantak Basu

Casting bedeutet, dass das Objekt vom Typ String sein muss, während String.valueOf() auch andere Typen annehmen kann.

2
tstorms
final Object obj = null;
final String strValOfObj = String.valueOf(obj);
final String strCastOfObj = (String) obj;
if (strValOfObj == null) System.out.println("strValOfObj is null");
if (strCastOfObj == null) System.out.println("strCastOfObj is null");

Ausgabe : strCastOfObj is null

1
Zaki

Der erste, d. H., String.valueOf gibt nur dann einen String zurück, wenn das Objekt ein darstellbarer Typ ist, der ein Werttyp oder ein String ist. 

Im letzteren Fall wenden Sie direkt an, was fehlschlagen kann, wenn das Objekt keine Zeichenfolge ist.

Online-Beispiel.

http://ideone.com/p7AGh5

in String.valueOf (); string as work typecasting alle Argumente, die in der valueof () - Methode übergeben werden, konvertieren in String und genauso wie integer.string () Ganzzahl nur in string

0
anuragsingh