开发中经常遇到从集合类List、Map中取出数据转换为String的问题,这里如果处理不好,经常会遇到空指针异常java.lang.NullPointerException,在此总结一下常用转换为String的方法,以及转换后如何对其进行判null使用的问题。
Java中对象转换为String的常用方法:
方法一:String objStr = (String) obj:
强制类型转换,对象obj为null,结果也为null,但是obj必须保证其本质是String类型的值,即可转换的值。
例如,不能强制转换 (String) 123
方法二:String objStr = obj.toString():
调用对象的toString方法,必须保证本类或者父类已经重写了Object类的toString方法,如果没有重写toString方法,
将默认调用Object类的toString方法,返回getClass().getName() + '@' + Integer.toHexString(hashCode()),
并不是obj的实际字符串表示,同时还必须保证对象obj不能为null,否者调用toString方法会报空指针异常java.lang.NullPointerException。
方法三:String objStr = String.valueOf(obj):
对象obj为null,转换结果为字符串"null",否则,返回 obj.toString() 的值。
注意,如果为obj为null,这里转换后的值已经是字符串的“null”,判空不能再用 obj == null,也不能使用apache.commons.lang3
下的StringUtils.isBank(CharSequence cs),而应该用 str.equals("null")。
已经知道obj为String类型的情况下:
使用方法1转换为String,转换为String后判null条件为:if (objStr != null)
慎用方法2
对于不知道具体类型的情况下,可以使用方法3,只是转换后String的判null条件改为:if (!objStr.equals('null'))
相信大家在日常开发中这三种方法用到的应该很多,尤其是前两种,经常在开发的
时
候,随心所欲,想用哪个用哪个,既然存在,那就应该有它存在的道理,那么什么情况下用哪个呢?
二、代码实例
1、基本类型
(1)基本类型没有
toString
()方法
(2)推荐使用
(3)无法强转
(
String
)是标准的类型
转换
,将Object类型转为
String
类型,使用(
String
)强转
时
,最好使用instanceof做一个类型检查,以判断是否可以进行强转,否则容易抛出ClassCas...
public class AADemo_4 {
public static void main(
String
[] args) {
User1 user1 = new User1("xiaowang",17);
User1 user11 =
null
;
System.out.print
在实际开发中,少不了使用这三种方法对某一个类型的数据进行转
String
的操作,那么什么情况下使用哪种方法更快捷,以及这些方法使用
时
的一些注意事项都有哪些呢?这篇文章参考自《掘金》上大佬的头条三面:
toString
()、
String
.valueOf、(
String
)强转,有啥区别? - 掘金 ,来叙述一下这三种方法的使用场景。废话少说,直接上代码!
一、基本类型
转换
1.
toString
()
基本类型是没有
toString
() 方法的
2.
String
.valueOf()
基本类型转.
toString
()方法返回反映这个对象的字符串
因为
toString
方法是Object里面已经有了的方法,而所有类都是继承Object,所以“所有对象都有这个方法”。
它通常只是为了方便输出,比如System.out.println(xx),括号里面的“xx”如果不是
String
类型的话,就自动调用xx的
toString
()方法
总而言之,它只是sun公司开...
Undefined 未定义:当声明一个变量,但是并不给变量赋值
时
。它的值就是undefined
Object 对象
其中
String
Number Boolean
Null
Undefined 为 基本数据类型
Object 为引用数据类型
强制类型
转换
:
将其它的数据类型
转换
成
String
方式一: 1.调用被
转换
类型的
toString
()方法,该方法不会影
如果我们的对象为空对象的
时
候,我们再使用
toString
() 方法,我们将会得到空对象的异常。这个对象有可能就是
String
对象,也有可能是其他的对象。如下面的 2 行语句:
如果你执行上面 2 行语句的话,铁定会抛出下面的空对象异常。如何让
Java
能够
toString
又不抛出异常呢?我们可以使用 Apache commons.lang3 提供的
toString
() 方法。如下面显示的使用用例:
如果我们输入的对象为
NULL
的话,上面的语句将会输出一个指定的字符串而不抛出空异常。
大家在日常测试的
时
候,经常需要输出一个dto的具体key-value,如下图,当我们直接输出user对象
时
,发现输出的是只是对象的引用并没有输出我们想要的key-value值。
这里大家可能都知道使用fastjson
转换
成
string
输出,当然首先是引入fastjson的jar包
<dependency>
<groupId>com.alibab...
ToString
字符串
转换
你用正确了吗?前言
ToString
()ConVert.
ToString
()建议使用方式Object到
String
的
转换
方法
在开发中,
ToString
()这个方法太方便了,以致于误解大家
转换
时
都是直接Object.
ToString
()直接
转换
,
其实不然, 一般都是转之前先判断是否为
null
后再进行
转换
,否则会直接报错。
ToString
()
每个类的基类都是Object类,
ToString
()是可以编写 overload 和 override 的方法之一。
因此,当你调用o