gpt4 book ai didi

java - BST 交集、NullPointerException

转载 作者:行者123 更新时间:2023-12-01 15:52:28 26 4
gpt4 key购买 nike

我正在尝试从 2 个已知 BST 的交集创建一个新的 BST。我在第二种情况下的 intersect2 方法中收到 NullPointerException,位于“cur3.item.set_account_id(cur1.item.get_accountid()+ cur2.item.get_accountid());”行。我知道当您尝试取消引用变量而不初始化它时,您会收到错误,但我认为我正在初始化它?我不太确定。我将不胜感激的帮助。

public static Bst<Customer> intersect(Bst<Customer> a, Bst<Customer> b){
return( intersect2(a.root, b.root));
}

public static Bst<Customer> intersect2(BTNode<Customer> cur1, BTNode<Customer> cur2){
Bst<Customer> result = new Bst<Customer>();

// 1. both empty -> true
if (cur1==null && cur2==null){
result=null;
}
// 2. both non-empty -> compare them
else if (cur1!=null && cur2!=null) {
BTNode<Customer> cur3 = new BTNode<Customer>();
cur3.item.set_account_id(cur1.item.get_accountid()+ cur2.item.get_accountid());
result.insert(cur3.item);
intersect2(cur1.left, cur2.left);
intersect2(cur1.right, cur2.right);
}

// 3. one empty, one not -> false
else if (cur1==null ||cur2==null){
BTNode<Customer> cur3 = new BTNode<Customer>();
cur3.item=null;
intersect2(cur1.left, cur2.left);
intersect2(cur1.right, cur2.right);
}
return result;
}

这是问题的图像:enter image description here

最佳答案

NullPointerException 可能由多种原因引起。在您给定的示例中,cur1 和 cur2 不为 null,但不能保证 cur1.item、cur1.item.accountId (对于 cur2 也类似)不为 null。

由于您没有对底层实现的描述,我无法提供进一步的帮助。我可以建议您做一些事情:
1.) 检查对象的实现(如果每次都发生这种情况,则可能存在某种初始化问题。
2.) 每当您创建项目实例时,您是否确保指定 accountId 字段?尝试为此字段指定默认值,使其不能为空。 (尝试某种非法值[例如-1、false等]并进行测试。

如果您愿意发布更多实现细节,我(或某人)也许能够直接识别问题。

问候。

编辑:4/20@17:11这是您应该做什么的示例。

public class Customer {  
private int accountId;

public Customer() {
this.accountId = 0;
}

public Customer(int account_identification) {
this.accountId = account_identification);
}

//As a side note, general practice implies fields be private
//Use a method (hence the term 'getter' and the reciprocal, 'setter')
public int getId() {
return this.accountId;
}

public void setId(int replacement_account_identification) {
this.accountId = replacement_account_identification;
}
}

关于java - BST 交集、NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5735806/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com