加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

Object转String的小妙招

发布时间:2021-05-17 22:35:21 所属栏目:编程 来源:互联网
导读:开拓中,小搭档必然常常碰着将一个Object范例的字段转换为String范例的字段。好比我们从一个范例界说为MapString, Object Object转换为String的方法有如下几种:
副问题[/!--empirenews.page--]

开拓中,小搭档必然常常碰着将一个Object范例的字段转换为String范例的字段。好比我们从一个范例界说为Map<String, Object>

Object转换为String的方法有如下几种:

(String)object

object.toString()

Stirng.valueOf(object)

""+object

我们临时先不接头哪种好,哪种欠好,我们先当真思量下从map中get出来的value值存在几种环境。

假如这个map是上游体系给我们的,秉持不信托上游体系的原则,那么某一个key为type对应的value值也许存在如下几种环境:

value为字符串,切合转达要求

value为其他范例,好比为Integer范例

value为空字符串

value为空格

value没传值,默以为null

map中不包括这个key

针对这些环境,接下来我们详细说明Object转换为String的方法。

(String)object

(String)object是将Object范例的工具逼迫转换为String范例。

对付空格、空字符串、null都可以转换,可是Object工具的值范例不是字符串好比Integer范例时,会存在范例转换非常错误。

public static void main(String[] args) { 

       /** 

        * 为了兼容各类参数,map的value值界说为了Object范例 

        * 针对一个key为type的值,它的value存在以下几种环境: 

        * 1)value为字符串 

        * 2)value为空字符串 

        * 3)value为空格 

        * 4)value没传值,默以为null 

        * 5)map中不包括这个key 

        */ 

       Map<String, Object> mapParams = new HashMap<String, Object>(); 

       TypeEntity entity = new TypeEntity(); 

       /** 

        * 逼迫范例转换 

        */ 

       mapParams.put("type",1); 

       System.out.println("行使逼迫范例转换的功效为:" + (String) mapParams.get("type")) ; 

运行功效为:

Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String 

    at com.alipay.demo.StringTest.main(StringTest.java:30) 

总结:

逼迫范例转换这种方法假如上游体系不是本身团队的只管不要行使,很轻易由于数据范例纷歧致转换报错。

object.toString()

object.toString()对空格、空字符串、其他数据范例都可以举办转换。必要留意,值为null时的空指针非常。

 /** 

 * toString() 

 */ 

mapParams.put("type", null); 

System.out.println("toString()转换的功效为:" + mapParams.get("type").toString()); 

运行功效为:

Exception in thread "main" java.lang.NullPointerException 

    at com.alipay.demo.StringTest.main(StringTest.java:39) 

总结:

我们在行使object.toString()必要对获取的value值先举办null的判定再转换。值为null的场景有两种环境:key对应的value值为null可能map中不存在这个key值。

Stirng.valueOf(object)

Stirng.valueOf(object)可以对null、空格、空字符串、其他数据范例举办转换,是一个较量安详的转换要领。

必要留意的是当值为null的时辰该要了解转换为"null",这个值会影响营业后续的非空判定。

我们查察Stirng.valueOf()要领的源码:

public static String valueOf(Object obj) { 

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读