方法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)源码如下:

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,但它们意义不同

方法4:采用 “”+object方法
这种方法也不必担心object为null的问题。但若object为null,会返回"null"字符串,和String.valueOf(object)一样。

System.out.println(""+null);
System.out.println(null+"");
System.out.println("(\"\" + null)和\"null\"比较的结果为:" + (""+null).equals(null));
System.out.println("(\"\" + null)和\"null\"比较的结果为:" + (null+"").equals(null));
System.out.println("(\"\" + null)和\"null\"比较的结果为:" + "null".equals("" + null));
System.out.println("(\"\" + null)和\"null\"比较的结果为:" + "null".equals(null + "" ));

输出结果:

null
null
("" + null)和"null"比较的结果为:false
("" + null)和"null"比较的结果为:false
("" + null)和"null"比较的结果为:true
("" + null)和"null"比较的结果为:true
————————————————

高效开发:java对象转化成String类型的四种方法相关推荐

  1. JAVA对象JSON数据互相转换的四种常见情况

    这篇文章主要介绍了JAVA对象JSON数据互相转换的四种常见情况,需要的朋友可以参考下 1. 把java 对象列表转换为json对象数组,并转为字符串 复制代码代码如下:     JSONArray ...

  2. Java 判断字符串是否为空的四种方法、优缺点与注意事项

    以下是Java 判断字符串是否为空的四种方法: 方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低: if(s == null ||"".equals(s)); 方法二: ...

  3. JAVA中获取文件MD5值的四种方法

    JAVA中获取文件MD5值的四种方法其实都很类似,因为核心都是通过JAVA自带的MessageDigest类来实现.获取文件MD5值主要分为三个步骤,第一步获取文件的byte信息,第二步通过Messa ...

  4. String.indexOf()的四种方法

    String.indexOf()的四种方法 String.indexOf(String str) 官方解释 : 返回此字符串中第一次出现指定子字符串的索引.返回的索引是最小值k ,其中: this.s ...

  5. Java解决Hash(散列)冲突的四种方法--开放地址法(线性探测,二次探测,伪随机探测)、链地址法、再哈希、建立公共溢出区

    Java解决Hash(散列)冲突的四种方法--开放地址法(线性探测,二次探测,伪随机探测).链地址法.再哈希.建立公共溢出区 参考文章: (1)Java解决Hash(散列)冲突的四种方法--开放地址法 ...

  6. java 数组效率_java数组复制的四种方法效率对比

    有关数组的基础知识,有很多方面,比方说初始化,引用,遍历,以及一维数组和二维数组,今天我们先看看数组复制的有关内容. 来源于牛客网的一道选择题: JAVA语言的下面几种数组复制方法中,哪个效率最高? ...

  7. java连接sql server2008_java连接sql-server-2008的四种方法

    <java连接sql-server-2008的四种方法>由会员分享,可在线阅读,更多相关<java连接sql-server-2008的四种方法(11页珍藏版)>请在人人文库网上 ...

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

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

  9. java中得到文件MIME类型的几种方法(转)

    本文转载自:http://hotsunshine.iteye.com/blog/857485 使用 javax.activation.MimetypesFileTypeMap 需要引入activati ...

最新文章

  1. Linux CENTOS7 Linux流量监控工具-iftop 安装过程以及示例!
  2. SQL Server日期格式的转换
  3. 算法谜题 php,JavaScript实现N皇后问题算法谜题解答_javascript技巧
  4. STL链式存储结构——————list链表
  5. Ionic APP 热更新
  6. C#多线程编程系列(三)- 线程同步
  7. 【Java】浅析八种基本类型和包装类型
  8. Vuex和普通全局对象
  9. 机器面试-处理分类问题
  10. 文件下载---txt文件下载
  11. 计算机教室管理使用规则,多媒体教室使用管理细则
  12. mysql 中 字典表设计_数据库怎么设计字典表
  13. 02325《计算机系统结构》自考复习重点目录
  14. “程序员猝死”引发的思考
  15. 2016 server win 假死_Windows10出现假死的几种表现形式及对应解决方案
  16. 这可能是最简单,精炼,有效的magisk 安装教程,附boot.img 提取方法
  17. 二叉树 最小公共祖先 c++版
  18. 搜索与图论模板题(必备)Day3
  19. dB、dbm、dbw、W 相互关系
  20. Martin Fowler:持续集成(很有参考意义)

热门文章

  1. jQuery实现多选框的全选与反选
  2. 高人、天才、牛逼…从柳传志到雷军、马云,几乎没人不服任正非!
  3. 【20230407】NVIDIA显卡算力、Jetson比较
  4. HTML,CSS 三角形制作案例(等边三角形 直角三角形)
  5. 小米系硬件查询保修日期
  6. 开源项目管理软件排名_2014年排名前5位的开源项目管理工具
  7. python爬取京东图书_Python抓取京东图书评论数据
  8. Caffe2新增RNN支持
  9. jquery获取单选框复选框下拉框值
  10. 【通俗易懂】什么是机器学习