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的三种策略总结相关推荐

  1. Java:简述对象转换为字符串的三种方式

    Java:简述对象转换为字符串的三种方式 在Java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能.本文将对常用的转换方法进行一个总结. 一.(String)强制类型转换 使用 ...

  2. Java 中Int转String的三种方法

    JAVA 中int类型转String类型的三种通常方法: 1.String.valueOf(int i) 2.Integer.toString(int i) 3.i + ""; / ...

  3. 转list_你知道Java数组转List的三种方式及对比吗?

    前言: 本文介绍Java中数组转为List三种情况的优劣对比,以及应用场景的对比,以及程序员常犯的类型转换错误原因解析. 一.最常见方式(未必最佳) 通过 Arrays.asList(strArray ...

  4. Java 数组转 List 的三种方式及对比

    来源 | blog.csdn.net/x541211190/article/details/79597236 本文介绍Java中数组转为List三种情况的优劣对比,以及应用场景的对比,以及程序员常犯的 ...

  5. object string java_java实现Object转String的4种方法小结

    1.object.toString()方法 这种方法要注意的是object不能为null,否则会报NullPointException,一般别用这种方法. 2.String.valueOf(objec ...

  6. 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 ...

  7. Java数组转List的三种方式及对比

    前言: 本文介绍Java中数组转为List三种情况的优劣对比,以及应用场景的对比,以及程序员常犯的类型转换错误原因解析. 一.最常见方式(未必最佳) 通过 Arrays.asList(strArray ...

  8. ASP.NET缓存中Cache过期的三种策略

    ASP.NET缓存中Cache过期的三种策略 原文:ASP.NET缓存中Cache过期的三种策略 我们在页面上添加三个按钮并双击按钮创建事件处理方法,三个按钮使用不同的过期策略添加ASP.NET缓存. ...

  9. Java InputStream转换为String

    Today we will learn how to convert InputStream to String in Java. While working on files, sometimes ...

最新文章

  1. 大厂架构都开始做机房多活了
  2. 2019-1-92.4G射频芯片培训资料
  3. 通信、计算机、电子相关专业技术工作
  4. 更新 箫心病毒分析专家2006 build 5.23(C#2.0)
  5. 智能照明c语言程序,基于单片机的智能照明控制系统设计方案(含AD+源代码)...
  6. Android经典应用程序开发
  7. 广州房价与数据分析岗薪资分析
  8. APK改之理(APK IDE)修改APK简单的入门教程
  9. Win8.1在关机界面卡住无反应问题的解决
  10. 使用DashPathEffect绘制一条动画曲线
  11. android WebView多标签,加速解决卡顿,视频播放笔记
  12. 单周期MIPS CPU设计
  13. 从此,清华不再「唯论文数」!校长邱勇:大学不能把学术权力,交给期刊编辑和审稿人...
  14. 学机器学习有必要懂数学吗?深入浅出机器学习与数学的关系
  15. 开源问答社区软件Answer
  16. 6位你必须知道的产品大神
  17. CST shape tools
  18. java计算机毕业设计家电售后管理系统MyBatis+系统+LW文档+源码+调试部署
  19. 【渝粤教育】电大中专计算机职业素养 (9)作业 题库
  20. 将一个字符串首字母转大写(英文)

热门文章

  1. 2016012026 管凌波 散列函数的应用及其安全性
  2. 安卓手机的a/span的宽高失效
  3. 传感器系列之4.3流量传感器
  4. ubuntu中解压rar文件遇到乱码的解决方法
  5. 遍历WinForm窗体 根据语言类型设置其控件Text显示
  6. [转]解决IE下CSS背景图片闪烁的Bug
  7. 使用httpclient4.3.2来实现微信临时素材的上传
  8. ElasticSearch倒排索引
  9. jsp九大内置对象与servlet中java对象
  10. 产品经理面试全流程深度复盘【面试准备篇】