探讨Object转为String的几种简易形式详解
发布时间:2023-08-21 11:47:27
在项目的实际开发和应用中,常常需要用到将对象转为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);
StringstrVal = (String)obj;
在运行时将会出错,因为将Integer类型强制转换为String类型,无法通过。但是,
Integer obj = new Integer(100);
StringstrVal = (String)obj;
因null值只能赋值为引用类型,而不适用于值类型,所以只有(String)null也是合法的。
方法3:采用String.valueOf(Object)
String.valueOf(Object)的基础是Object.toString()。但它与Object.toString()又有所不同。在前面方法1的分析中提到,使用第一种时需保证不为null。但采用第三种方法时,将不用担心object是否为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,但它们意义相同吗?


猜你喜欢
- 本文实例为大家分享了android选择视频文件上传到后台服务器的具体代码,供大家参考,具体内容如下选择本地视频文件附上Demo首先第一步打开
- 本文为大家分享了C#导入导出Excel数据的具体代码,供大家参考,具体内容如 * :对于实体类对象最好新建一个并且继承原有实体类,这样可以将类
- 在前面的文章中有介绍到我们在微信web开发过程中常常用到的 【微信JSSDK中Config配置】 ,但是我们在真正的使用中我们不仅仅只是为了
- 什么是断点续传用户上传大文件,网络差点的需要历时数小时,万一线路中断,不具备断点续传的服务器就只能从头重传,而断点续传就是,允许用户从上传断
- mybatis介绍 * 的一个作用就是我们可以拦截某些方法的调用,我们可以选择在这些被拦截的方法执行前后加上某些逻辑,也可以在执行这些被拦截
- 本文实例总结了Android横竖屏切换相关技巧。分享给大家供大家参考,具体如下:一、禁止横竖屏切换Android横竖屏切换在手机开发中比较常
- Netty设置为Https访问SSLContextFactorypublic class SSLContextFactory {
- 运行结果:模拟器图库就三张 没办法~画质挺感人~一个隐式意图布局文件:<RelativeLayout xmlns:android=&q
- 一、什么是递归方法调用自己的行为就是递归,递归必须要有终止条件,不然它会无限递归。1.先来看一下一个递归的例子此程序的Fact方法从大到小地
- 最近碰到个需要下载zip压缩包的需求,于是我在网上找了下别人写好的zip工具类。但找了好多篇博客,总是发现有bug。因此就自己来写了个工具类
- 1、判断实体对象是否为空2、判断对象所有属性是否为空3、特别注意,实体类中如果有基本数据类型,会影响判断package com.liuxd.
- 本文就是会将数组里面的单词进行倒序排列 例如 how old are you -> you are old how示例程序输出结果:t
- 最近项目需要微信支付,然后看了下微信公众号支付,,虽然不难,但是细节还是需要注意的,用了大半天时间写了个demo,并且完整的测试了一下支付流
- 目录题目及要求:提示:原创代码:代码思路:题目及要求:给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。提示:0 <
- 我就废话不多说了,大家还是直接看代码吧~import com.alibaba.fastjson.JSON;import java.util.
- 创建started service 应用组件(例如Activity)
- 这篇文章主要介绍了Springboot整合Shiro的代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
- 一. 递归1. 简介所谓的递归,其实是一种解决问题的方式。就是在解决具有既定规律的问题时,在方法内部调用方法自身的一种编程方式。 即方法在运
- 环境:主机:WIN10开发环境:Android Studio 2.2 Preview 3说明:两种方法实现底部弹出的对话框:DialogDi
- 本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下XML布局主页面main布局<com.handma