我正在尝试在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();
应用程序崩溃,没有堆栈跟踪。请帮忙。感谢。
答案 0 :(得分:2)
如果this.productId为null,则此equals方法可能会产生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 ......
答案 1 :(得分:1)
您的问题似乎与f = new Fragment();
((FragmentActivity) context).getFragmentManager().beginTransaction()
.addToBackStack(null)
.replace(ContainerId, f).commit();
有关,因为productid为NullPointerException
,您必须确保在调用null
productid.equals