在java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能。本文将对常用的转换方法进行一个总结。常用的方法有Object#toString(),(String)要转换的对象,String.valueOf(Object)等。下面对这些方法一一进行分析。

方法1:采用 Object#toString()方法
请看下面的例子:

  Object object = getObject();

System.out.println(object.toString());

在这种使用方法中,因为java.lang.Object类里已有public方法.toString(),所以对任何严格意义上的java对象都可以调用此方法。但在使用时要注意,必须保证object不是null值,否则将抛出NullPointerException异常。采用这种方法时,通常派生类会覆盖Object里的toString()方法。

方法2:采用类型转换(String)object方法
这是标准的类型转换,将object转成String类型的值。使用这种方法时,需要注意的是类型必须能转成String类型。因此最好用instanceof做个类型检查,以判断是否可以转换。否则容易抛出CalssCastException异常。此外,需特别小心的是因定义为Object 类型的对象在转成String时语法检查并不会报错,这将可能导致潜在的错误存在。这时要格外小心。如:

Object obj = new Integer(100);

String strVal = (String)obj;

在运行时将会出错,因为将Integer类型强制转换为String类型,无法通过。但是,

Integer obj = new Integer(100);

String strVal = (String)obj;

如是格式代码,将会报语法错误。

此外,因null值可以强制转换为任何java类类型,(String)null也是合法的。

方法3:采用String.valueOf(Object)
String.valueOf(Object)的基础是Object#toString()。但它与Object#toString()又有所不同。在前面方法1的分析中提到,使用后者时需保证不为null。但采用第三种方法时,将不用担心object是否为null值这一问题。为了便于说明问题,我们来分析一下相关的源代码。Jdk里String# valueOf(Object)源码如下:

  /**

   * Returns the string representation of the Object argument.

   *

   * @param  obj  an Object.

   * @return if the argument is null, then a string equal to

   *     "null"; otherwise, the value of

   *     obj.toString() is returned.

   * @see   java.lang.Object#toString()

   */

  public static String valueOf(Object obj) {

    return (obj == null) ? "null" : obj.toString();

}

从上面的源码可以很清晰的看出null值不用担心的理由。但是,这也恰恰给了我们隐患。我们应当注意到,当object为null时,String.valueOf(object)的值是字符串”null”,而不是null!!!在使用过程中切记要注意。试想一下,如果我们用 if(String.valueOf(object)==null){System.out.println(“传入的值是null!”);}这样的语句将可能会发生什么问题。再想一下,向控制台输出时,在视觉上如下语句在执行的结果上有什么不同:

System.out.println(String.valueOf(null));

System.out.println(null);

我们看到的输出将是一模一样的东西:null,但它们意义相同吗?

转载于:https://blog.51cto.com/amyhang/76011

JAVA对象转为Java String的几种常用方法相关推荐

  1. JSON对象转为Java类对象

    本文讲述两种方法,使JSON对象转为Java类对象.基于FastJson1 对于以下的JSON对象: {"message": "成功","code&q ...

  2. Redis存储java对象或者java对象数组

    1. 先将java对象或者java对象数组用ObjectMapper转换为json对象 2. 再用jedis对象的put方法,将数据写入Redis数据库

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

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

  4. 高效开发:java对象转化成String类型的四种方法

    方法1:采用 Object#toString()方法 请看下面的例子: Object object = getObject(); System.out.println(object.toString( ...

  5. ObjectMapper实现将Java对象转为json字符串

    ObjectMapper调用 添加pom依赖 <dependency><groupId>com.fasterxml.jackson.core</groupId>&l ...

  6. 将java对象存储到redis数据库(两种实现方式)

    本文为转载内容,特此声明,如若侵权,请联系删除,原文地址:https://www.cnblogs.com/potentPrince/p/8668544.html redis主要存储类型最常用的五种数据 ...

  7. 2021-06-04 Java对象在Hibernate下的4种状态和Session相关方法以及对象识别

    注:集成开发环境软件:MyEclipse(2017破解版)和mySQL(MySQL Server 8.0) 一.Query(查询) (1)Query(查询)接口允许你在数据库上执行查询并控制查询如何执 ...

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

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

  9. 【Java】Object转换为String的三种策略总结

    java.lang.Object → java.lang.String String str = (String)obj; ,即使用强转,从父类型Object向下转型为String. String s ...

最新文章

  1. numpy数组切片:一维/二维/数组
  2. 【学习笔记】block、inline(替换元素、不可替换元素)、inline-block的理解
  3. shell基础二:查找技巧,find及xargs的使用
  4. 索引存储模型-二分查找
  5. 歌谣带你看java面试题
  6. redis创建像mysql表结构_Redis数据结构列表实现
  7. 图论 —— DAG 图的最长路
  8. javascrpt 继承
  9. windows server 2012/2016 开启桌面图标
  10. 看看百度百科怎样解释CSS的
  11. Unity Physics.Raycast踩坑
  12. 在linux中安装Jupyter notebook
  13. 微信公众号开发获取code
  14. vivado sata ip (phy)配置
  15. 浅谈“Robots文件信息泄露”
  16. Ipad各系列年代顺序
  17. 2009年7月自考马克思主义基本原理概论模拟试题及答案(一)
  18. 华为智慧屏鸿蒙系统缺点,华为智慧屏用户评论及华为智慧屏电视真实体验优缺点情况...
  19. http实现大文件上传
  20. 深度学习100题(1)

热门文章

  1. 让Python代码简洁的实用技巧!
  2. 强化学习教程来啦!贡献者来自中科院、清华、北大3位男神!
  3. 开源组织:Datawhale
  4. 面试官:原生GAN都没复现过,自己走还是我送你?
  5. 刚毕业就20w年薪,这个项目太牛逼了!
  6. 要不要读博?机器学习博五学生和强化学习博士展开了一场battle
  7. 当专业动画师用GAN帮自己“偷懒”,几分钟就完成了几周的工作
  8. 《Python Cookbook》 最佳译本开放下载啦!
  9. 中国团队 Nature 新冠论文被指图片造假,科研论文不端“何时休”
  10. 70、80后、90后,小时候开学的场景!你还记得吗?