标签:bsp class key 网上 blog 可靠 val static 没有
今天在使用这个的时候发现,他们三者好像在某些场所都是可以用的,但是不免会让人想到那既然它们三者这么的相似,那么总有些什么区别吧。我也在网上找了一些资料看。自己也看了API文档,就将他们三的区别总结一下吧。用了这么长时间,才发现有这些的不同,也是挺惭愧的。
先说他们三的作用是什么吧:没什么特别的作用,就是让我们得到的对象或参数类型,按照要求转成字符串的形式。
1
2
3
4
5
|
Boolean boolean1 = true ; String str3 = (String)boolean1; //这行代码会报错,编译不过 String str4 = boolean1.toString(); //正常 String str5 = String.valueOf(boolean1); //正常 |
通过上面的例子我们就很清晰的明白了,String强转的方式固然轻松,那么它是有很大的局限性的。在用的时候要谨慎。
1
2
|
Object obj = getObject(); Syystem.out.println(obj.toString()); |
就如这上面的代码表示的一样,如果obj不为空,那么就能正常编译,那么如果obj取出来为空的话,那么就会报出空指针异常的。
1
|
public static String valueOf(Object obj){ return (obj== null ) ? "null" : obj.toString()}; |
在内部就是做了为空的判断的,所以就不会报出空指针异常。
总结:
这三者的使用,个人觉得应该使用String.valueOf()的方式。这样的使用安全可靠,不会带来异常。说的有不对的地方,希望大家指正批评。
--------------------- 本文来自 pyj---- 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/u012467492/article/details/52995489?utm_source=copy
String、toString、String.valueOf()三个有啥区别?
标签:bsp class key 网上 blog 可靠 val static 没有
原文地址:https://www.cnblogs.com/shiwanming/p/9725095.html