我正在尝试在 Android 中实现 .equals 方法:
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Product product = (Product) o;
String prdId = product.getProductId();
return productId.equals(prdId);
}
当我运行调试并单步执行时,将跳过这些行:
Product product = (Product) o;
String prdId = product.getProductId();
应用程序崩溃时没有堆栈跟踪。请帮忙。谢谢。
最佳答案
如果 this.productId 为 null,则此等于方法可能会产生 NullPointerException。
您可以使用 Objects.equals()空安全比较:
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Product product = (Product) o;
String prdId = product.getProductId();
return Objects.equals(productId, prdId);
}
可以肯定的是,我们确实需要 StackTrace...
关于java - 等于方法崩溃应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47988295/