toString()、String.valueOf、(String)强转
1、基本类型
(1)基本类型没有toString()方法

(2)推荐使用String.valueOf();

(3)无法强转

=========补=========
(String)是标准的类型转换,将Object类型转为String类型,使用(String)强转时,最好使用instanceof做一个类型检查,以判断是否可以进行强转,否则容易抛出ClassCastException异常。
instanceof判断

2、封装类型
(1)toString

(2)String.valueOf()
自然也是可以的
(3)封装类型也无法强转

3、null值问题
(1)toString()报空指针异常

(2)String.valueOf()返回字符串“null”

(3)null值强转成功

三、源码分析
1、toString()

2、String.valueOf()

四、总结
1、toString(),可能会抛空指针异常
在这种使用方法中,因为java.lang.Object类里已有public方法.toString(),所以java对象都可以调用此方法。但在使用时要注意,必须保证object不是null值,否则将抛出NullPointerException异常。采用这种方法时,通常派生类会覆盖Object里的toString()方法。
2、String.valueOf(),推荐使用,返回字符串“null”
String.valueOf()方法是小编推荐使用的,因为它不会出现空指针异常,而且是静态的方法,直接通过String调用即可,只是有一点需要注意,就是上面提到的,如果为null,String.valueOf()返回结果是字符串“null”。而不是null。
3、(String)强转,不推荐使用
(String)是标准的类型转换,将Object类型转为String类型,使用(String)强转时,最好使用instanceof做一个类型检查,以判断是否可以进行强转,否则容易抛出ClassCastException异常。需要注意的是编写的时候,编译器并不会提示有语法错误,所以这个方法要谨慎的使用
toString()、String.valueOf、(String)强转的更多相关文章
- java-toString()、(String)、String.valueOf 的区别
Object x = new Integer(1218); System.out.println((String)x); 如上代码编译通过,运行时报错: java.lang.ClassCastExce ...
- Java中String字符串toString()、String.valueOf()、String强转、+ ""的区别
Object#toString(): Object object = getObject(); System.out.println(object.toString()); 在这种使用方法中,因为ja ...
- String、String.valueOf、toString 它们三者的区别总结
今天在使用这个的时候发现,他们三者好像在某些场所都是可以用的,但是不免会让人想到那既然它们三者这么的相似,那么总有些什么区别吧.我也在网上找了一些资料看.自己也看了API文档,就将他们三的区别总结一下 ...
- 转换String三种方式比较:toString()、String.valueOf()、(String)
简单介绍: 1.toString,需要保证调用这个方法的类.方法.变量不为null,否则会报空指针. 2.String.valueOf.这个方法在使用的时候是有些特殊的.一般情况下,如果是确定类型的n ...
- (String)强制转换、toString()和String.valueOf()的区别
String:毫无疑问,这种就是强转形式,简单方便,效率高.java程序员可能看到效率高或许有些激动,但是它有他的不好,那就是局限性.在java的世界里没有什么东西是没有缺点的,总有一些好的方面同时也 ...
- Java中String.valueOf、toString、(String)的区别
原文地址http://blog.csdn.net/yangzhaomuma/article/details/51173138 原文地址https://www.cnblogs.com/xhyouyou/ ...
- toString(),String.valueOf,(String)在处理空对象时的区别
public static void main(String[] args) { Map<String,Object> map = new HashMap<>(); map.p ...
- String、toString、String.valueOf()三个有啥区别?
今天在使用这个的时候发现,他们三者好像在某些场所都是可以用的,但是不免会让人想到那既然它们三者这么的相似,那么总有些什么区别吧.我也在网上找了一些资料看.自己也看了API文档,就将他们三的区别总结一下 ...
- Java中区别.toString() ,(String),valueOf()方法
在java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能.本文将对常用的转换方法进行一个总结.常用的方法有Object.toString(),(String)要转换的对象,St ...
随机推荐
- Hadoop入门 完全分布式运行模式-集群配置
目录 集群配置 集群部署规划 配置文件说明 配置集群 群起集群 1 配置workers 2 启动集群 总结 3 集群基本测试 上传文件到集群 查看数据真实存储路径 下载 执行wordcount程序 配 ...
- 日常Java 2021/10/1
正则表达式 \cx匹配由x指明的控制字符.例如,lcM匹配一个Control-M或回车符.x的值必须为A-Z或a-z之一.否则,将c视为一个原义的'℃'字符.\f匹配--个换页符.等价于\xOc和\c ...
- LVM磁盘创建与扩容
以虚拟机为例 1.在虚拟机上添加新磁盘,点击虚拟机→设置->添加,最后如下图. 2.进入系统fdisk -l,查看当前磁盘信息 [root@master shell]# fdisk -l Dis ...
- Spark基础:(三)Spark 键值对操作
1.pair RDD的简介 Spark为包含键值对类型的RDD提供了一些专有的操作,这些RDD就被称为pair RDD 那么如何创建pair RDD呢? 在不同的语言中有着不同的创建方式 在pytho ...
- jmeter进阶
1.如果(if)控制器的使用 2.参数的调用 3.数据库的链接
- oracle 以SYSDBA远程连接数据库
在服务器用sysdba登陆 grant sysdba to system 然后在远程就可以sysdba登陆数据库了
- shell神器curl命令的用法 curl用法实例笔记
shell神器curl命令的用法举例,如下: ##基本用法(配合sed/awk/grep) $curl http://www.jquerycn.cn ##下载保存 $curl http://www.j ...
- 最小化安装centos ubuntu基础命令
# yum install vim iotop bc gcc gcc-c++ glibc glibc-devel pcre \ pcre-devel openssl openssl-devel zip ...
- Maven配置大全
maven项目打jar包(带依赖) <build> <plugins> <plugin> <artifactId>maven-assembly-plug ...
- 离散数学3.1&&3.3
离散数学 当前所使用的数字电脑是离散的,二进制指令,传输到内存 早先使用的模拟电脑是连续的 判断是否是命题(两个步骤)[不要跳步骤] 陈述句 要么是真命题要么是假命题 真假性 真:用T或1表示,假:用 ...