Android Studio报错Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
时间: 2024-10-17 14:11:21 浏览: 35
CRASH问题:java.lang.NullPointerException
5星 · 资源好评率100%
当Android Studio在运行你的应用时提示"Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference"这样的错误,这意味着你在试图调用一个字符串对象的equals()方法,但是这个对象却是null。equals()方法用于比较两个对象是否相等,如果对象为null,调用该方法会抛出NullPointerException。
这种错误通常发生在以下几个场景:
1. 你可能忘记初始化一个变量,导致它一直是null。
2. 在访问对象属性或调用其方法之前,没有检查对象是否已创建或赋值。
3. 使用了空安全操作符("?.")但仍有误,如`stringObject?.equals(anotherString)`,`stringObject`为null时没有做处理。
解决此问题的方法通常是先检查对象是否为null,然后再进行后续操作:
```java
String myString = ...;
if (myString != null) {
if (myString.equals(anotherString)) {
// do something
}
}
```
或者使用Optional类:
```java
Optional<String> optionalMyString = ...;
optionalMyString.ifPresent(myString -> {
if (myString.equals(anotherString)) {
// do something
}
});
```
阅读全文