String.ValueOf和toString区别
来源:互联网 发布:linux安装windows软件 编辑:程序博客网 时间:2024/05/16 10:05
动力节点 2017-09-08 10:14
官方微信:动力节点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;}
此方法返回对象本身,在java.lang.Object类中也有toString()方法,所以Java对象都可以调用此方法,但使用的时候 必须保证要转换的对象不为null ,否则将抛出NullPointerException异常
String.valueOf()
API源码
/*** 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,所以报如下异常
Exception in thread "main" java.lang.ClassCastException: java.lang.Object cannot be cast to java.lang.Stringat com.becoda.bkms.bus.energyindex.web.Test.main(Test.java:11)
②行代码使用toString()方法,由于str为null,所以报如下异常
Exception in thread "main" java.lang.NullPointerExceptionat com.becoda.bkms.bus.energyindex.web.Test.main(Test.java:12)
③行代码使用String.valueOf()方法,即使str为null,也不会报错,返回字符串null
阅读全文
0 0
- String.ValueOf和toString区别
- String.ValueOf和toString区别
- toString 和 String.valueof 的区别
- String.ValueOf 和 toString 的区别
- String.valueOf() 和 toString的区别
- java.toString()和String.valueOf的区别
- string.valueof和toString的区别
- String.valueOf和toString
- .toString和String.valueOf()
- toString 和String.valueOf
- java toString()和String.valueOf() 和(String)object区别
- (String)强制转换、toString()和String.valueOf()的区别
- (String)强制转换、toString()和String.valueOf()的区别
- java.toString() 和 (String) 以及 String.valueOf() 的区别
- 关于String.valueOf()和toString
- toString()和String.valueof()比较
- 关于String.valueOf() 和 .toString()
- Obj.toString()和String.valueOf(Obj)的区别
- 集合
- 杭电1032
- 使用Fiddler在手机上抓取https请求
- cnn分类器训练遇到的错误
- PYScrollToolBarView(解决了很多手势冲突)
- String.ValueOf和toString区别
- 土木硕士转行互联网小结
- 阿里云SLB配置http跳转https
- iOS 扩展性极强的波浪效果工具类
- awakeFromNib和initWithCoder差别
- 已知两个线性升序表LA,LB,然后合并两个表为LC,并保持升序
- 如果处理服务器与客户端时间不一致的问题
- node+express 后端api
- eclipse linux 下自动提示快捷键