Java的字符串操作,强转换,toString以及String.valueOf()

我现在知道的Java对象转换为字符串的方法如下(以后还有再补充):

1、java.lang.Object类的toString()方法,对于这个方法,通常需要Object的子类进行Override(重写);

2、java.lang.String类的valueOf()方法;

3、String的强制转换,(String) obj

 

分析上面三中方法:

1、java.lang.Object类的toString()方法

toString方法是java.lang.Object对象的一个public方法。

在java中任何对象都会继承Object对象,所以一般来说任何对象都可以调用toString这个方法。

采用该种方法时,子类会覆盖Object里的toString()方法。

 

首先看看Object类中toString()方法的源码

public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

 Object中的toString()方法,返回的是方法的 类名 + "@" + 16 + 无符号十六进制的对象的hashCode

注意:

使用这个方法时,Object对象不能为null,否则会报空指针异常(java.lang.NullPointerException)

 

java.lang.String类中toString()方法源码如下

public String toString() {
    return this;
}

 这里就是返回String类本身

 

如果自定义的Class想使用toString()方法转换为把对象转换为String类型,建议重写toString()方法

Java中的很多Class,都在类定义时重写了toString()方法

 

 

2、java.lang.String的valueOf(Object obj)方法

方法源码如下

public static String valueOf(Object obj) {
    return (obj == null) ? "null" : obj.toString();
}

查看源码,可以看到,如果Object对象为null时,返回的是一个"null"字符串,而不是null

如果Object对象不为null,则调用对象自己的toString()方法。

 

 

3、使用(String) 强制转换对象

当Object或者Integer等其他类型,使用(String)做强制转换时,通常都会报

java.lang.ClassCastException 异常,一般只有String类型的才使用这种方法进行转换

 

总结:

1、使用toString()时,派生类最好重写java.lang.Object的toString()方法,而且当使用Object的toString()时,对象不能为null;

2、String.valueOf(Object obj) 不需要担心对象为null的问题,但是要注意到,对象为null时,返回的是"null"字符串,而不是null;

3、不建议使用(String)做 类型强制转换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值