转换为 String 和 String.valueOf 之间的区别

2024-01-05

有什么区别

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

and

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

仅当对象实际上是一个字符串:

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

当对象是其他东西时,它将不起作用:

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

String.valueOf() http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#valueOf%28java.lang.Object%29但是会尝试将您传递给它的任何内容转换为String。它处理两个原语(42) 和对象 (new Integer(42),使用该对象的toString() http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#toString%28%29):

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"

特别注意最后一个例子:passingnull to String.valueOf()将返回字符串"null".

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

转换为 String 和 String.valueOf 之间的区别 的相关文章

随机推荐