目录
先将 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的时候,如果字符串的内容是数字的话,这样转就会报强转异常
指路 : 【异常】java.lang.Integer cannot be cast to java.lang.String_HolaOrange的博客-CSDN博客
③我怎么斟酌要不要用这个方法 : 很少没怎么用过
【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结果。
如果参数为null, 返回字符串”null”
勾勾的Object转String