java-toString()、(String)、String.valueOf 的区别
Object x = new Integer(1218);
System.out.println((String)x);如上代码编译通过,运行时报错:
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String- toString()
- toString()是在Object中定义的,因此,任何继承Object的类都具有这个方法。
- 建议所有子类都重写此方法
- 它的值等于:
getClass().getName()+'@'+Integer.toHexString(hashCode()) - 使用toString()的对象不能为null,否则会抛出异常
java.lang.NullPointerException
- String.valueOf()
- String.valueOf()解决了toString()使用对象不能为空的问题
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}- 如果对象为null,则返回字符串“null”
- (String)
- 它是强制转换
Integer o = new Integer();
System.out.println((String)o);- 如上代码编译时就会报错:
Cannot cast from Integer to String,说明Integer不能通过强制转换成String。 Object x = new Integer();
System.out.println((String)x);- 在编译时没错,运行时抛出异常。这是因为x在表面上是Object,实际上是Integer。而Object是可以通过强制转换成为String的。所以,在编译的时候,x被当成了Object,大家相安无事,真正运行的时候,x被查出来是Integer,理所当然就抛出了ClassCastException。
java-toString()、(String)、String.valueOf 的区别的更多相关文章
- java.toString() ,(String),String.valueOf的区别
在Java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能.本文将对常用的转换方法进行一个总结. 常用的方法有Object#toString(),(String)要转换的对象,S ...
- Java中String.valueOf、toString、(String)的区别
原文地址http://blog.csdn.net/yangzhaomuma/article/details/51173138 原文地址https://www.cnblogs.com/xhyouyou/ ...
- toString() 和 (String) 以及 valueOf() 三者的对照关系[java]
简述 在Java中,往往需要把一个类型的变量转换成String 类型.作为菜鸟,有时候我会使用(String) data,有时候就使用data.toString(),如果不行还会试试 String.v ...
- String、toString、String.valueOf()三个有啥区别?
今天在使用这个的时候发现,他们三者好像在某些场所都是可以用的,但是不免会让人想到那既然它们三者这么的相似,那么总有些什么区别吧.我也在网上找了一些资料看.自己也看了API文档,就将他们三的区别总结一下 ...
- (String)、toString、String.valueOf的区别
String.valueOf()它可以将JAVA基本类型(int,double,boolean等)和对象(Object)转换成String型toString()是对象的方法,它可以将该对象转换成Str ...
- (String)强制转换、toString()和String.valueOf()的区别
String:毫无疑问,这种就是强转形式,简单方便,效率高.java程序员可能看到效率高或许有些激动,但是它有他的不好,那就是局限性.在java的世界里没有什么东西是没有缺点的,总有一些好的方面同时也 ...
- (String)、toString()与String.valueOf()的区别
(String).Object.toString()正常情况下跟String.valueOf()没有区别. 但当Object是null的时候.toString会抛出异常.valueOf返回" ...
- 【转载】(String)、toString、String.valueOf的区别
用于个人参考,查看请前往原地址http://blog.csdn.net/springk/article/details/6414017 问题讨论http://bbs.csdn.net/topics/2 ...
- 7.算法竞赛中的常用JAVA API :String 、StringBuilder、StringBuffer常用方法和区别(转载)
7.算法竞赛中的常用JAVA API :String .StringBuilder.StringBuffer常用方法和区别 摘要 本文将介绍String.StringBuilder类的常用方法. 在j ...
- JAVA中String与StringBuffer的区别
String和StringBuffer的区别,网上资料可以说是数不胜数,但是看到这篇文章,感觉里面做的小例子很有代表性,所以转一下,并自己做了一点总结. 在java中有3个类来负责字符的操作. 1.C ...
随机推荐
- Vue函数式组件的应用
一.函数式组件和普通组件的区别 渲染快 没有实例,意味着没有(this) 没有生命周期(没有响应式数据) 二.组件函数的使用 1. 以局部组件为例,将组件标记为 functional=ture; 因为 ...
- Egret白鹭开发微信小游戏(使用皮肤搭建UI,代码调用组件功能)
(1)新建皮肤,并命名如下 (2)根据实际情况自定义皮肤,例如: (3)修改名字为如下: (4)运行游戏会自动生成以下代码: (5)在default.thm.json中添加如下代码:(具体路径名字根据 ...
- Java基础之Comparable与Comparator
Java基础之Comparable与Comparator 一.前言: Java中实现对对象的排序一般情况下主要有以下两种实现方式(万物皆对象嘛): 对象所在的类实现Comparable 接口 定义比较 ...
- 学习笔记之Java队列Queue中offer/add函数,poll/remove函数,peek/element函数的区别
队列是一种特殊的线性表,它只允许在表的前端进行删除操作,而在表的后端进行插入操作. LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Queue来用. Java中Que ...
- mac入门之设置
mac入门: 一般手机软件,都是分设置和业务功能:操作系统亦是如此,设置+必备应用:用设置入门十分合理. 总览: 通用:通用,顾明思意是设置的设置,设置是独立应用之外或者公共的开关,通用更抽象一层,没 ...
- mysql安装-yum方式
1.环境 查看当前系统环境,使用的是 centos release 6.5 (Final). 2.检查当前系统是否已经安装过mysql rpm -qa | grep mysql 3.如果有,那么删除已 ...
- [转]Linux系统结构
Linux系统一般有4个主要部分:内核.shell.文件系统.应用程序. 内核.shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序.管理文件并使用系统. 1.linux内核 内 ...
- 【Redis】基本数据类型
一.概述 二.String(字符串) 三.List(列表) 四.Hash(字典) 五.Set(集合) 六.Sorted Set(有序集合) 一.概述 Redis目前支持5种数据类型,分别是: Stri ...
- 04 python之函数详解
一.函数初识 函数的产生:函数就是封装一个功能的代码片段. li = ['spring', 'summer', 'autumn', 'winter'] def function(): count = ...
- 章节十六、7-DataProviders
一.当我们的同一个test有多套数据需要进行测试,那么我们就需要用到-->DataProviders package testclasses1; import org.testng.annota ...