Różnica między odlewaniem na Sznurek i sznurek.wartość
Jaka jest różnica między
Object foo = "something";
String bar = String.valueOf(foo);
I
Object foo = "something";
String bar = (String) foo;
8 answers
Casting Do string działa tylko wtedy, gdy obiekt faktycznie jest ciągiem:
Object reallyAString = "foo";
String str = (String) reallyAString; // works.
Nie zadziała, gdy obiekt jest czymś innym:
Object notAString = new Integer(42);
String str = (String) notAString; // will throw a ClassCastException
String.valueOf()
jednak będzie starał się przekształcić to, co w nim przekazać do String
. Obsługuje zarówno primitives (42
), jak i objects (new Integer(42)
, używając tego obiektu toString()
):
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"
Uwaga szczególnie ostatni przykład: przejście null
do String.valueOf()
zwróci łańcuch "null"
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-28 11:19:23
String.valueOf(foo)
wywołuje metodę foo i przypisuje wynik do paska . Jest to null i typ bezpiecznej pracy.
Casting po prostu przypisze foo do paska , jeśli typy są pasujące. W przeciwnym razie wyrażenie rzuci ClassCastException
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-25 15:30:44
Oba generują to samo wyjście W przypadku String
.
Casting
błąd w przypadku, gdy podany obiekt nie jest string.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-29 13:42:17
Casting oznacza, że obiekt musi być typu String, podczas gdy {[0] } może przyjmować również inne typy.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-29 13:32:45
String.metoda valueOf służy do uzyskania reprezentacji łańcuchowej obiektu parametru.
(String) wartość rzuca wartość obiektu na string.
Możesz użyć ciągu.valueOf metoda, aby uzyskać reprezentację łańcuchową obiektu bez martwienia się o odwołania null. Jeśli spróbujesz rzucić ciąg znaków na odniesienie null, otrzymasz wyjątek NullPointerException.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-29 13:36:57
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");
Wyjście: strCastOfObj is null
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-22 11:02:26
Pierwszy tzn. String.valueOf
zwraca łańcuch tylko wtedy, gdy obiekt jest reprezentowalnym typem, który jest typem wartości lub łańcuchem znaków.. W przeciwnym razie rzuca wyjątek.
W tym drugim rzucasz bezpośrednio, co może się nie udać, jeśli obiekt nie jest ciągiem.
Przykład Online.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-29 13:33:47
In String.valueOf (); string as work typecasting wszystkie argumenty przekazane w metodzie valueof () przekonwertować W String i tak jak integer.string() Konwertuj liczbę całkowitą tylko na string
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-13 08:25:06