为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
Java

在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,但它们意义相同吗?


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消