您的位置:首页 > 移动开发 > Objective-C

Object类中的toString方法和Objects类中的toString方法的区别

2020-07-20 04:19 1056 查看

大家都知道
Object类中的toString方法 在对象没有重写toString方法的时候, 输出的是对象的虚拟地址值的String表示形式 即:全类名路径+@+哈希值

而Objects工具类中的toString方法 在对象没有重写toString方法的时候,输出的同样是对象的虚拟地址值的String表示形式


控制台打印输出结果:
那既然两个方法都是结果都是一样的 而可想而知 如果对象重写了toString方法,打印输出的就是对象重写的toString方法的内容,那为什么在Object方法中有toString方法的同时Objects类中的toString方法有何意义呢?

查看底层源码可以知道:
Objects中的toString方法是比Object类中的toString方法高级一些的,那高级在哪里呢~

Object类中的toString方法的底层源码:

Objects工具类中的toString方法的底层源码:

可以发现 底层是调用的String类中的valueOf方法,那valueOf方法有什么特殊的吗?咱们继续往下走!
String类中的valueOf方法的底层源码:

这里就好玩了,哈哈哈,可以看到 valueOf底层源码实际就是一个三元运算符,而这个三元运算符的作用就是俗称的非空判断的作用 也就是说 如果对象是null Object类中的toString方法会抛出异常,而Objects类中的toString方法就不会抛出异常,而是会将null赋值给返回值字符串!

这就是Object类中的toString方法和Objects类中的toString方法的区别!!!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: