Comparator
来源:1-1 平衡树和AVL
weixin_慕圣6334738
2022-03-02 02:46:11
老实我在做leetcode遇到一个问题需要写一个comparator, 有一个地方我没有太懂,比如下面这个,

为什么我在 compare方法的参数一定要用Integer, 我用int就会报错
1回答
liuyubobobo
2022-03-02
因为 compareTo 方法的参数实际是泛型类型,而 Java 的泛型类型只能是类,不能是基本类型。Integer 是类,int 是基本类型。
印象里你问过我关于 @Override 的问题,这里就是一个典型可以使用 @Override 的地方。如果你给 compare 方法加一个 @Override,传入 int 类型,就会发现 @Override 的报错了,错误提示就会告诉你,传入 int 参数的函数签名,在父类中找不到。父类中相应的函数签名需要的参数是 Object。(见截图我用红框圈起来的报错信息。)

这就是我说的:Override 不影响逻辑(不加也可以),但在需要的时候加上,可以帮助你更快地理解你的错误可能发生在哪里,进而预防这类错误。
继续加油!:)
相似问题
回答 1