compareTo()Java快速问题
我的代码中有这个方法compareTo()Java快速问题,java,class,methods,if-statement,compareto,Java,Class,Methods,If Statement,Compareto,我的代码中有这个方法 public boolean has(AnyType x){ for(int i=0; i<items.length; i++) if(items[i] == x) return true; return false; } 但这给了我一个错误 Exception in thread "main" java.lang.NullPointerException 你知道我
public boolean has(AnyType x){
for(int i=0; i<items.length; i++)
if(items[i] == x)
return true;
return false;
}
但这给了我一个错误
Exception in thread "main" java.lang.NullPointerException
你知道我可能做错了什么吗?你的一个项目[]为空。
检查元素是否正确设置为非空值。您的一个项目[]为空。 检查元素是否正确设置为非null值。在需要对象的情况下,当应用程序尝试使用null时,将抛出。检查您的
项目[i]
值。其中一个值必须为null,这就是编译器抛出NullPointerException
的原因
if(items[i].compareTo(x) == 0)
执行此操作时,您试图将空值与x
进行比较,这确实会引发NullPointerException
务必检查非空值测试。试试这个
public boolean has(AnyType x){
for(int i=0; i<items.length; i++) {
if(items[i] != null && items[i] ==x)
return true;
return false;
}
}
public boolean has(AnyType x){
for(int i=0;i在需要对象的情况下,当应用程序尝试使用null时抛出。请检查项[i]
值。其中一个值必须为null,这就是编译器抛出NullPointerException
的原因
if(items[i].compareTo(x) == 0)
执行此操作时,您试图将空值与x
进行比较,这确实会引发NullPointerException
一定要检查非空值测试。试试这个
public boolean has(AnyType x){
for(int i=0; i<items.length; i++) {
if(items[i] != null && items[i] ==x)
return true;
return false;
}
}
public boolean has(AnyType x){
对于(int i=0;i您的项目之一为空,您可以在尝试调用compareTo
之前对其进行验证
您还可以使用增强的for循环:
public boolean has(AnyType x){
for( AnyType n : items ) {
if( ( n == null && n == x ) ||
( n != null && n.compareTo( x ) == 0 ) ) {
return true;
}
}
return false;
}
您的一个项目为空,您可以在尝试调用compareTo
之前对其进行验证
您还可以使用增强的for循环:
public boolean has(AnyType x){
for( AnyType n : items ) {
if( ( n == null && n == x ) ||
( n != null && n.compareTo( x ) == 0 ) ) {
return true;
}
}
return false;
}
很明显,items[i]是空的。现在找出原因。是的,我有一个计数器来保持数组的大小,在我删除一些项后,由于我正在处理数组,所以我必须更改if语句中的items.length来counterMore关于NullPointer异常:您应该使用equals(),而不是compareTo()。显然,items[i]是空的。现在找出原因。是的,我有一个计数器来保持数组的大小,在我删除一些项后,由于我正在处理数组,所以我必须更改if语句中的items.length以counter更多关于NullPointer异常的信息:您应该使用equals(),而不是compareTo()。非常感谢。我修复了它,确实有一些空值。我只是将items.length更改为保留数组中下一个空值的计数器。非常感谢。我修复了它,确实有一些空值。我只是将items.length更改为保留数组中下一个空值的计数器。