String.ValueOf和toString区别

String.ValueOf和toString区别#官方微信:动力节点Java学院。在Java开发中,我们经常用到将对象转换成String类型这一功能,常用的有如下三种方式。

欢迎大家来到IT世界,在知识的湖畔探索吧!

官方微信:动力节点Java学院

在Java开发中,我们经常用到将对象转换成String类型这一功能,常用的有如下三种方式

  • (String)[对象]

  • [对象].toString

  • String.valueOf([对象])

(String)

这是标准的类型转换,将对象强制转换为String类型,前提是 该对象必须能保证转成String类型,否则将抛出ClassCastException异常

toString

API源码:

/*** This object (which is already a string!) is itself returned.** @return the string itself. */public String toString() { return this; }

欢迎大家来到IT世界,在知识的湖畔探索吧!

此方法返回对象本身,在java.lang.Object类中也有toString()方法,所以Java对象都可以调用此方法,但使用的时候 必须保证要转换的对象不为null ,否则将抛出NullPointerException异常

String.valueOf()

API源码

欢迎大家来到IT世界,在知识的湖畔探索吧!/*** Returns the string representation of the <code>Object</code> argument.** @param obj an <code>Object</code>.* @return if the argument is <code>null</code>, then a string equal to* <code>"null"</code>; otherwise, the value of* <code>obj.toString()</code> is returned.* @see java.lang.Object#toString() */public static String valueOf(Object obj) { return (obj == null) ? "null" : obj.toString(); }

从上面源码可以看出,我们不用担心Object为null,但使用的时候也要小心, 当Object为null时,它的返回值是“null”,而不是null ,是有区别的。

示例代码

public class Test { public static void main(String[] args) { Object obj = new Object(); String str = null; System.out.println((String) obj); // ① System.out.println(str.toString()); // ② System.out.println(String.valueOf(str)); // ③ } }

①行代码使用(String)强制转换,由于是Object类型无法转换成String,所以报如下异常

欢迎大家来到IT世界,在知识的湖畔探索吧!Exception in thread "main" java.lang.ClassCastException: java.lang.Object cannot be cast to java.lang.String at com.becoda.bkms.bus.energyindex.web.Test.main(Test.java:11)

②行代码使用toString()方法,由于str为null,所以报如下异常

Exception in thread "main" java.lang.NullPointerException at com.becoda.bkms.bus.energyindex.web.Test.main(Test.java:12)

③行代码使用String.valueOf()方法,即使str为null,也不会报错,返回字符串null

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/76770.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信