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

 更新时间:2013年11月20日 16:41:56   作者:   我要评论

在很多情况下我们都需要将一个对象转换为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!!!

相关文章

  • Java并发编程之显示锁ReentrantLock和ReadWriteLock读写锁

    Java并发编程之显示锁ReentrantLock和ReadWriteLock读写锁

    这篇文章主要介绍了Java并发编程之显示锁ReentrantLock和ReadWriteLock读写锁,本文讲解了ReentrantLock概况、Lock接口、Lock使用、轮询锁的和定时锁、公平性、可中断获锁获取操作等内容,需要的朋友可以参考下
    2015-04-04
  • Java类锁、对象锁、私有锁冲突测试

    Java类锁、对象锁、私有锁冲突测试

    这篇文章主要介绍了Java类锁、对象锁、私有锁冲突测试,得出结论是加锁方法够成了竞争关系,同一时刻只能有一个方法能执行,需要的朋友可以参考下
    2014-10-10
  • 浅谈java 中equals和==的区别

    浅谈java 中equals和==的区别

    这篇文章主要介绍了java 中equals和==的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • java实现快速排序算法

    java实现快速排序算法

    快速排序算法是基于分治策略的另一个排序算法。其基本思想是:对输入的子数组a[p:r],按以下三个步骤进行排序。 1) 分解(Divide)(2) 递归求解(Conquer) (3) 合并(Merge)
    2015-04-04
  • Java中同步与并发用法分析

    Java中同步与并发用法分析

    这篇文章主要介绍了Java中同步与并发用法,较为详细的分析了java同步与并发所涉及的相关类与使用技巧,需要的朋友可以参考下
    2015-06-06
  • Java实现不同的类的属性之间相互赋值

    Java实现不同的类的属性之间相互赋值

    今天小编就为大家分享一篇关于Java实现不同的类的属性之间相互赋值,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • Java中的接口知识汇总

    Java中的接口知识汇总

    本文给大家汇总介绍了在java中的接口知识,包括为什么要使用接口、什么是接口、抽象类和接口的区别、如何定义接口以及定义接口注意点,希望大家能够喜欢
    2016-04-04
  • SpringBoot+LayIM+t-io 实现好友申请通知流程

    SpringBoot+LayIM+t-io 实现好友申请通知流程

    这篇文章主要介绍了 SpringBoot+LayIM+t-io 实现好友申请通知流程,本文图文并茂给大家介绍的非常详细,需要的朋友可以参考下
    2017-12-12
  • 基于JAVA中使用Axis发布/调用Webservice的方法详解

    基于JAVA中使用Axis发布/调用Webservice的方法详解

    如果初识axis发布/调用WS,建议先读上面的参考文件,本文对于发布/调用WS的主要步骤只是简单文字描述,没有它写的详尽
    2013-05-05
  • java中实现汉字按照拼音排序(示例代码)

    java中实现汉字按照拼音排序(示例代码)

    这篇文章主要是对java中将汉字按照拼音排序的实现代码进行了详细的分析介绍。需要的朋友可以过来参考下,希望对大家有所帮助
    2013-12-12

最新评论