当参数字符串为 null 时,int compareTo() 应该返回什么?
据说当输入参数为 null 时,compareTo() 应抛出 NullPointerException。但是,我正在实现一个类,该类需要将字段与 String 类型进行比较。这些字段不必是必填字段。我想知道在这种情况下,
1) 当输入为空时,我应该返回什么?任何非空字符串在字典上是否应大于或小于 null?
和
2)如果这被认为是不好的做法,是否有任何支持论据?我是否应该强制用户改用空字符串?如果使用空字符串,这不会混淆字段不适用的情况和字段为空的情况吗?如果必须抛出异常,那么除了在手册中警告用户之外,我还能做些什么呢?
编辑:我可能不会在这里清楚地表达自己,但是在我正在实现的程序中,可能为null的字符串都是字段或类,不应该是null。换句话说,比较到()使用的对象不能为空,只是它们的私有字段可以是空的。因此,在这种情况下,我相信如果我正确实现compareTo(),它不会违反传递要求,因为具有空字段的类将被视为始终相同。我是对的,还是我解释错了?
谢谢大家的回答!