java对象转string_JAVA对象的转换与String常用的几种方法使用

在java项目的实践开发和运用中,常常需求用到将政策转为String这一基本功能。本文将对常用的转化办法进行一个总结。常用的办法有Object#toString(),(String)要转化的政策,String.valueOf(Object)等。

办法1:选用 Object#toString()办法

请看下面的比如:

Object object = getObject();

System.out.println(object.toString());

在这种运用办法中,由于java.lang.Object类里已有public办法.toString(),所以对任何严峻意义上的java政策都能够调用此办法。但在运用时要留心,有必要保证object不是null值,否则将抛出NullPointerException失常。选用这种办法时,一般派生类会掩盖Object里的toString()办法。

办法2:选用类型转化(String)object办法

这是规范的类型转化,将object转成String类型的值。运用这种办法时,需求留心的是类型有必要能转成String类型。因而最好用instanceof做个类型检查,以判别是否能够转化。否则简略抛出CalssCastException失常。此外,需特别留心的是因界说为Object 类型的政策在转成String时语法检查并不会报错,这将或许导致潜在的过错存在。这时要格外留心。如:

Object obj = new Integer(100);

String strVal = (String)obj;

在运行时将会犯错,由于将Integer类型强制转化为String类型,无法通过。但是,

Integer obj = new Integer(100);

String strVal = (String)obj;

如是格局代码,将会报语法过错。

此外,因null值能够强制转化为任何java类类型,(String)null也是合法的。

办法3:选用String.valueOf(Object)

String.valueOf(Object)的基础是Object#toString()。但它与Object#toString()又有所不同。在前面办法1的剖析中说到,运用后者时需保证不为null。但选用第三种办法时,将不必忧虑object是否为null值这一问题。为了便于阐明问题,咱们来剖析一下相关的源代码。Jdk里String# valueOf(Object)源码如下:

/**

* Returns the string representation of the Object argument.

*

* @param  obj  an Object.

* @return if the argument is null, then a string equal to

*     "null"; otherwise, the value of

*     obj.toString() is returned.

* @see   java.lang.Object#toString()

*/

public static String valueOf(Object obj) {

return (obj == null) ? "null" : obj.toString();

}

从上面的源码能够很清楚的看出null值不必忧虑的理由。但是,这也恰恰给了咱们危险。咱们应当留心到,当object为null时,String.valueOf(object)的值是字符串”null”,而不是null!!!在运用过程中切记要留心。试想一下,假设咱们用 if(String.valueOf(object)==null){System.out.println(“传入的值是null!”);}这样的句子将或许会发作什么问题。再想一下,向控制台输出时,在视觉上如下句子在执行的作用上有什么不同:

System.out.println(String.valueOf(null));

System.out.println(null);

咱们看到的输出将是千篇一律的东西:null,但它们意义相同吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值