目录

【1/4】Object.toString()

【2/4】String.valueOf(object)

【3/4】(String)object

【4/4】object + ""

Object转Long或者int

先将 Object 类型转换为 string,再将 string 转换为 long/int


【1/4】Object.toString()

①object不能为null,否则会报nullpointexception ; 

②对空格、空字符串、其他数据类型都可以进行转换

③我怎么斟酌要不要用这个方法 : 百分百确认不为null , 如果可能会出现null的话看情况:

>>如果是检查代码取值的话 , 就会抓一下抛异常给我自己检查的时候看见

>>一般业务的时候都会做判空 , null了的话就自己抓然后写业务异常"xx不能为空!"这样 ,

或者比如新用户没设置名字的话判空的时候if(xx为null)

就设一个默认值给他(比如默认名字"用户+一串随数字"来作为他的用户名)

>>如果单纯是想避免空指针可以用下面别的方法

【2/4】String.valueOf(object)

①这个就不担心object为null抛NullPointerException了,

因为null的话会变成字符串"null"放在上面

②对null、空格、空字符串、其他数据类型可以进行转换,是一个相对比较安全的转换方法。

千万要注意null 和 字符串"null"不是同一个东西啊

③我怎么斟酌要不要用这个方法

虽然是个相对安全的转换方法, 但是因为不利于业务代码,万一值null了我就不能及时发现去处理,只能看库或者扒值的时候才发现有问题,所以多数时候我还是用的toString()

String.valueOf()方法本质是使用的obj.toString(),对于可能存在的空指针异常进行了判断规避。

但是转换的"null"可能会对我们的业务进行干扰,在使用这个方法的时候需要先判断结果是否为null再进行转换,当然如果没有业务允许也可以不进行判断。(引用勾勾的话)

【3/4】(String)object

①不担心object去null抛NullPointerException的问题

②对于空格、空字符串、null都可以转换

③但是!!!要是转为String的时候,如果字符串的内容是数字的话,这样转就会报强转异常

③我怎么斟酌要不要用这个方法

【4/4】object + ""

①不担心object为null抛NullPointerException,

因为null的话会变成字符串"null"放在上面 , 和String.valueOf(object)一样意思

②此方法是利用字符串的拼接特点将其他类型的数据转换为字符串

③我怎么斟酌要不要用这个方法 : 也是几乎没用过

=============================================================

Object转Long或者int

鉴于上文这么多教训。。。以后就这么干 : 

先将 Object 类型转换为 string,再将 string 转换为 long/int

至于用toString()还是String.valueOf(object)根据上文阐述按自己需求选。。

Objects.toString(Object o)

题外话 : Objects提供了很多静态工具类 , 其中有一个toString(Object o)

如果参数非null,返回参数的toString结果。