java 中的valueOf方法和强转详解编程语言
case1:Object 对象转String
需要强调的是String.valueOf()方法,当参数为类型是object,且值时null的时候他的处理方式
public static String valueOf(Object obj) {
return (obj == null) ? null : obj.toString();
}
这样在后面的成都不会报错但是在逻辑上可能出错,一般习惯写的是str!=null str.length() 0
当是由 str = String.valueOf(obj)得到时上面的额判断条件就有问题了
所以遇到 Object 对象转String 最好强转 str= (String) obj此时,当obj为null时,str依然为null
case2:Object 装基本类型的包装类型,(关注integer和Long,Double)
首先 obj被赋值之后 obj还是属于数据所属基本类型的包装类型可以通过instanceOf 判断知道.
所以直接用强转就可以,没有必要用类似Long.ParseLong(String.valueOf(obj))这类方法,用这中复杂的问题会有一个问题就是不能返回值不能包含null
如果是null就直接抛出异常了,因为在String.valueOf()方法时已经把null转为字符串了,而Long.parseLong()方法如果传入了null字符串就会报异常,
Long.ParseLong(String.valueOf(obj)) 方法就等价与 (long)obj,用基本类型去强转
更好的做法是用(Long)obj去强转,在后面的程序中做null情况的判断和处理
case3: 基本类型的包装类型和String的vlaueOf方法对与obj=null的处理是不一样的,String.valueOf(obj)的处理返回的 null 字符串,而基本类型的包装类型返回的null
强调一下,String不是基本类型,更不是基本包装类型
总结:1遇到obj类型转string时最好强转
2遇到obj类型转几倍类型的包装类型时最好强转,如果需要可以先用instanceOf判断其类型时再强转
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/15364.html
c相关文章
- java 图片识别 tess4j_JAVA使用Tess4J进行ocr识别
- java游戏开发入门教程_JAVA制作游戏入门教程
- java一个字符几个字节_Java 语言中一个字符占几个字节?
- java的栈内存和堆内存_Java本地方法栈
- Java设计模式之简单工厂、工厂方法和抽象工厂详解编程语言
- java压缩与解压(Java.util.zip)详解编程语言
- java实现map和object互转的三种方法详解编程语言
- java解析XML的方法详解编程语言
- Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法详解编程语言
- java 标准输出与标准错误 out与 err 区别 用法 联系 java中的out与err区别 System.out和System.err的区别 System.out.println和System.err.println的区别 Java重定向System.out和System.err详解编程语言
- Jsp中如何通过Jsp调用Java类中的方法详解编程语言
- java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result异常的解决方法详解编程语言
- java将File转换为MultipartFile的两种方法详解编程语言
- 一个java删除文件夹的小方法详解编程语言
- java集合HashMap、HashTable、HashSet详解编程语言
- Java Set.add()方法:向Set集合添加对象
- 时间解决Java使用Redis进行超时处理的方法(redisjava过期)
- 使用JNI连接Java和Oracle数据库的方法(jnioracle)
- java关键字final使用方法详解