今天遇到个错误,我的一个函数的参数是Object类型,fun(Object o){….}但是传入一个PrintStream的时候却报错。
提示如下:
莫名其妙!不知道为什么报错,经过仔细检查才看出来是Object写成了Objects。
fun(Objects o){….}
所以才不会被认出来。既然找出来错误那么就去百度一下吧。
百度上有很多种解释,我这里都没有写出来,想看详细的解释请转度娘。
这里写一写我自己的见解:
首先,我的错误就说明了Objects和Object不一样。我们都知道Object类是所有类的父类。但是大家一定要记住!Objects这个类不是所有的类的父类!这是一个Object类的子类,它是Object类的扩展,也是为了我们写的类扩展一些功能的。
This class consists of static utility methods for operating on objects. These utilities include null-safe or null-tolerant methods for computing the hash code of an object, returning a string for an object, and comparing two objects.
这是该类在api文档中的解释。翻译如下(Google翻译结果)
该类由用于对对象进行操作的静态实用程序组成。 这些实用程序包括用于计算对象的哈希码,返回对象的字符串和比较两个对象的空安全或空容忍方法。