【Java】Object转换为String的三种策略总结
java.lang.Object → java.lang.String
String str = (String)obj;
,即使用强转,从父类型Object向下转型为String。String str = obj.toString();
,即使用Object一定会存在的toString()方法。String str = String.valueOf(obj);
,即使用String类的静态方法,将一个Object类型的变量转成String类型对象。
StrategyⅠ
由于不仅仅是String,所有类的共同父类都是Object,所以是可以向下转型的。
但是,如果obj实际上不是String类型的,会爆java.lang.ClassCastException的。
因此,如果非要用,建议使用 instanceof 先做一下判断吧。
这种方法的好处就是用这顺手、简单。
StrategyⅡ
toString()是从Object类就有的方法,直接调用也很方便。
问题也很明显,最让人崩溃的 java.lang.NullPointerException 啊!
如果obj是null的话,直接一长串空指针……
StrategyⅢ
这个方法比较神奇,因为它有9个重载方法(重载就是方法/函数同名,但参数列表个数或者类型不同):
- String.valueOf(boolean value): String
- String.valueOf(char value): String
- String.valueOf(char[] data): String
- String.valueOf(double value): String
- String.valueOf(float value): String
- String.valueOf(int value): String
- String.valueOf(long value): String
- String.valueOf(Object data): String
- String.valueOf(char[] data, int start, int length): String
使用的时候特殊情况是String.valueOf(null)
,
这时调用的是:String.valueOf(Object data)
。
(IDE中按住Ctrl就可以追溯引用了)
String.valueOf(Object data)的源码如下:
public static String valueOf(Object obj) {return obj == null ? "null" : obj.toString();
}
最终并不会空指针,而是返回"null"
!
所以这种策略虽然不容易爆异常,但也可能得到不想要的结果,即"null",所以还是需要处理一下的。
【Java】Object转换为String的三种策略总结相关推荐
- Java:简述对象转换为字符串的三种方式
Java:简述对象转换为字符串的三种方式 在Java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能.本文将对常用的转换方法进行一个总结. 一.(String)强制类型转换 使用 ...
- Java 中Int转String的三种方法
JAVA 中int类型转String类型的三种通常方法: 1.String.valueOf(int i) 2.Integer.toString(int i) 3.i + ""; / ...
- 转list_你知道Java数组转List的三种方式及对比吗?
前言: 本文介绍Java中数组转为List三种情况的优劣对比,以及应用场景的对比,以及程序员常犯的类型转换错误原因解析. 一.最常见方式(未必最佳) 通过 Arrays.asList(strArray ...
- Java 数组转 List 的三种方式及对比
来源 | blog.csdn.net/x541211190/article/details/79597236 本文介绍Java中数组转为List三种情况的优劣对比,以及应用场景的对比,以及程序员常犯的 ...
- object string java_java实现Object转String的4种方法小结
1.object.toString()方法 这种方法要注意的是object不能为null,否则会报NullPointException,一般别用这种方法. 2.String.valueOf(objec ...
- Java char转换为String,String转换为char数组
Today we will look into java char to String program. We will also learn how to convert String to a c ...
- Java数组转List的三种方式及对比
前言: 本文介绍Java中数组转为List三种情况的优劣对比,以及应用场景的对比,以及程序员常犯的类型转换错误原因解析. 一.最常见方式(未必最佳) 通过 Arrays.asList(strArray ...
- ASP.NET缓存中Cache过期的三种策略
ASP.NET缓存中Cache过期的三种策略 原文:ASP.NET缓存中Cache过期的三种策略 我们在页面上添加三个按钮并双击按钮创建事件处理方法,三个按钮使用不同的过期策略添加ASP.NET缓存. ...
- Java InputStream转换为String
Today we will learn how to convert InputStream to String in Java. While working on files, sometimes ...
最新文章
- 大厂架构都开始做机房多活了
- 2019-1-92.4G射频芯片培训资料
- 通信、计算机、电子相关专业技术工作
- 更新 箫心病毒分析专家2006 build 5.23(C#2.0)
- 智能照明c语言程序,基于单片机的智能照明控制系统设计方案(含AD+源代码)...
- Android经典应用程序开发
- 广州房价与数据分析岗薪资分析
- APK改之理(APK IDE)修改APK简单的入门教程
- Win8.1在关机界面卡住无反应问题的解决
- 使用DashPathEffect绘制一条动画曲线
- android WebView多标签,加速解决卡顿,视频播放笔记
- 单周期MIPS CPU设计
- 从此,清华不再「唯论文数」!校长邱勇:大学不能把学术权力,交给期刊编辑和审稿人...
- 学机器学习有必要懂数学吗?深入浅出机器学习与数学的关系
- 开源问答社区软件Answer
- 6位你必须知道的产品大神
- CST shape tools
- java计算机毕业设计家电售后管理系统MyBatis+系统+LW文档+源码+调试部署
- 【渝粤教育】电大中专计算机职业素养 (9)作业 题库
- 将一个字符串首字母转大写(英文)