在很多情况下我们都需要将一个对象转换为String类型。一般来说有三种方法可以实现:Object.toString()、(String)Object、String.valueOf(Object)。下面对这三种方法一一分析:

一、采用Object.toString()

toString方法是java.lang.Object对象的一个public方法。在java中任何对象都会继承Object对象,所以一般来说任何对象都可以调用toString这个方法。这是采用该种方法时,常派生类会覆盖Object里的toString()方法。

但是在使用该方法时要注意,必须保证Object不是null值,否则将抛出NullPointerException异常。

二、采用(String)Object

该方法是一个标准的类型转换的方法,可以将Object转换为String。但是在使用该方法是要注意的是需要转换的类型必须是能够转换为String的,否则会出现CalssCastException异常错误。

      Object o = new Integer(100);String string = (String)o;

这段程序代码会出现java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String。因为将Integer类型强制转换为String类型,无法通过。

三、String.valueOf(Object)

上面我们使用Object.toString()方法时需要担心null问题。但是使用该方法无需担心null值问题。因为在使用String.valueOf(Object)时,它会判断Object是否为空值,如果是,则返回null。下面为String.valueOf(Object)的源码:

public static String valueOf(Object obj) {return (obj == null) ? "null" : obj.toString(); }

从上面我们可以看出两点:一是不需要担心null问题。二是它是以toString()方法为基础的。

但是一定要注意:当object为null时,String.valueOf(object)的值是字符串对象:"null",而不是null!!!

转载于:https://www.cnblogs.com/oversea201405/archive/2012/06/28/3752246.html

String类型转换的三种方法分析相关推荐

  1. java对象转换String类型的三种方法

    **一.采用Object.toString() **toString方法是java.lang.Object对象的一个public方法.在java中任何对象都会继承Object对象,所以一般来说任何对象 ...

  2. 算法--生成m个指定范围的不重复随机数的三种方法分析(Java实现)

    Q题目 如何产生m个在0-N范围内的无重复的随机数(不包含N) A解法 2.1 常见解法有两种: 1.间接获取--采用随机下标从已实例化的数组中取元素 2.直接获取随机数--然后一一排除 2.2 间接 ...

  3. 四种数据类型转换字符串类型的 三种方法

    1.Number类型 2.Boolean类型 3.undefined类型 4.null类型 在JavaScript中如果想将以上的四种基本数据类型转换为字符串类型, 常用的方法有三种 1.对于Numb ...

  4. java equals 判断空_Java 判断字符串是否为空的三种方法与性能分析

    [java中判断字符串是否为数字的三种方法  1>用JAVA自带的函数 public static boolean isNumeric(String str){   for (int i = s ...

  5. php遍历数组哪个效率高,PHP遍历数组的三种方法及效率对比分析

    PHP遍历数组的三种方法及效率对比分析 发布于 2015-03-04 21:55:27 | 129 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext ...

  6. 将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法(亲测)

    在用pandas包和numpy包对数据进行分析和计算时,经常用到DataFrame和array类型的数据.在对DataFrame类型的数据进行处理时,需要将其转换成array类型,是以下列出了三种转换 ...

  7. 为什么系统调用会消耗较多资源?系统调用的三种方法:软件中断(分析过程)、SYSCALL指令、vDSO(虚拟动态链接对象linux-vdso.so.1)

    Table of Contents 软件中断 汇编指令 vDSO 总结 参考文章 系统调用是计算机程序在执行的过程中向操作系统内核申请服务的方法,这可能包含硬件相关的服务.新进程的创建和执行以及进程调 ...

  8. Java中将对象转换成String的三种方法

    日常开发中经常会有对象转成String类型这种场景,一般有三种方法 1.直接进行类型强转,(String) Object o = "2"; System.out.println(( ...

  9. 三种平摊分析的方法分别为_关于平摊分析、表的扩增、势能分析初步理解

    冒泡~今天看了MIT算法导论公开课之第13课 平摊分析.表的扩增.势能方法的课程 所以做了以下记录. 平摊分析 定义: 用平摊的思想来分析一个操作序列,以证明每个操作的平均代价很小,尽管其中一个或几个 ...

最新文章

  1. C#“.NET研究”类类型
  2. IE浏览器下ajax缓存导致数据不更新的解决方法
  3. 跟你聊得这么投缘,你却说自己不是人?!
  4. 用汇编写改进的冒泡排序
  5. 远程删掉服务器的文件能找回吗,远程删除Windows服务器指定目录下N天前文件方法...
  6. linux服务器基本常识,服务器搭建-Linux基础知识
  7. 57岁博士,第三次出征太空...
  8. JS的eval函数解密反混淆
  9. 通过aspnetpager为DataList分页
  10. php 判断是否在线,关于判断用户是否在线的问题!!!
  11. Task watchdog got triggered错误
  12. 马化腾为什么要怼朱啸虎,只因OFO套路太深
  13. H5跳转微信公众号解决方案
  14. “顾客总是对的”,客户满意从在线客服系统开始
  15. linux脚本第一行是什么,完全搞懂shell脚本第一行:#!/bin/bash的含义
  16. 大厂面试必备之消息队列连环问
  17. 【excel】python破解excel加密视图
  18. linux终端同步文件目录,文件和目录比较工具?
  19. [DR吐槽]——三大卡牌链游到底都是什么货色?
  20. 数据库 嵌套查询_联接操作与嵌套查询 数据库管理系统

热门文章

  1. Microsoft.Ink namespace
  2. 多个ORACLE HOME时的程序连接
  3. 通过rss阅读器写blog
  4. Error:express-session deprecated undefined resave option; provide resave option app.js:17:10
  5. 【Vue】—Vue拆分文件
  6. 联想340c笔记本cpu能升级吗_高性价比十大笔记本电脑(由高到低价格),有一台五五开也有.........
  7. 股票的资产重组什么意思?
  8. 抱团股大跌,亏了谁的钱?
  9. 为什么你总感觉情绪低落心情颓废?
  10. 建议大家都玩一下自媒体