mih*_*imi 2 java null nullpointerexception
有没有人知道为什么String.compareTo没有编程在null参数方面表现得更加慷慨?
在我看来,下一个序列应该返回"1"或至少javadoc应该更具体的NPE.在这种情况下equals()返回false,我猜equals并且compareTo应该是一致的.
例如
String nullString = null;
System.out.println ("test".equals(nullString));
System.out.println ("test".compareTo(nullString));
Run Code Online (Sandbox Code Playgroud)
投掷NPE:
false
Exception in thread "main" java.lang.NullPointerException
at java.lang.String.compareTo(String.java:1177)
Run Code Online (Sandbox Code Playgroud)
添加到它.如果您要在代码中进行compareTo,那么您是否会验证空值?
因为它是compareTo()(强调添加)的记录行为:
一类的自然顺序
C被说成是与equals一致当且仅当e1.compareTo(e2) == 0具有相同的布尔值的e1.equals(e2)每一个e1和e2阶级的C.请注意,这null不是任何类的实例,并且e.compareTo(null)应该抛出一个NullPointerException偶数e.equals(null)返回false.
至于.equals()返回false而不是NPEing,再次,它在文档中:
对于任何非空引用值
x,x.equals(null)应返回false.
| 归档时间: |
|
| 查看次数: |
4990 次 |
| 最近记录: |