日常开发中经常会有对象转成String类型这种场景,一般有三种方法
1.直接进行类型强转,(String)
Object o = "2";
System.out.println((String) o);
//输出结果为:2
但是这是建立在类型能强转为String的前提下的,如果不能,则会抛出ClassCastException异常
Object o = 2;
System.out.println((String) o);
因此在强转之前最好做个类型的检查,就能有效避免异常
Object o = 2;
if (o instanceof String) {
System.out.println((String) o);
}else {
System.out.println("此类型无法强转");
}
//输出结果为:此类型无法强转
2.调用toString方法
Object o = 2;
System.out.println(o.toString());
//输出结果为:2
toString方法在Object类中被定义,因此任何Java对象都可以调用此方法
但是要保证调用此方法的对象不为null,否则会抛出NullPointerException异常
Object o = null;
System.out.println(o.toString());
使用此方法之前应进行非空判断,避免异常
Object o = null;
if (o != null) {
System.out.println(o.toString());
}else {
System.out.println("调用对象为null");
}
//输出结果为:调用对象为null
3. 调用String.valueOf方法
Object o = 1;
System.out.println(String.valueOf(o));
//输出结果为:1
此方法为String类定义的静态方法,可以直接调用,并且不会出现前面两种方式出现的异常
跟踪它的源码可以看到是如何避免空指针异常的
它会直接把null对象转换为"null"字符串
这是需要特别注意的,当需要转换的对象为null时,结果并不是空字符串,而是"null"字符串
以上三种方法各有千秋,可以根据实际情况酌情使用
相关文章
暂无评论...