手写String.valueOf(),String和toString

String强转,String.valueOf()和toString都能达到将一个类型转化为String类型,或者说,获取到String类型的值;

 

        String suc = "6666";
        String valueStr = String.valueOf(suc);
        String toStr = suc.toString();
        String strStr = (String)suc;

都可以达到目的..这是同,其异的地方在哪里呢....

String强转

之 ClassCastException

既然是强转,肯定是具有继承关系之间的强转及基础数据类型那几个之间的转换.(或者不成立,父类对象指向子类对象的引用)

但是一点,如果强转的类型不一致,就会出现如下问题:

 

toString()方法

之NullPointerException

toString的好处之一更多的是,我们在实体对象中重写toString()方法,以更直观的展示对象之间的属性名称及属性值.

但是,toString(),即使是重写的时候,也是对应当前对象是否存在,即null类型的判断

 

String.valueOf()

之null与"null"的恒等;

String.valueOf()使用的地方是比上述的方法要强大了....该方法返回的就是一个String,而内部是实现了toString的方法,即:

首先一点,避免了toString的空指针问题...同样,由于该方法对所有的object都实现了获取其String类型的值,故也不存在classCast的问题;即使这样他也不是万能的;

即使我将intA改为String 类型....String会将一个null值转化为值null;同样的"null"值也是的...

这样是有一丁点儿歧义的...

 

总结:

其实String.valueOf()的不同只是个人的吹毛求疵,这种业务场景还是很少见的...所以有时候还要多加思考一下.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章