2012-10-09 33 views
1

我在該行Java的B樹和NullPointerException異常

GUI getText (tr.search(tr, txtFindf.getText().charAt(0),txtFindf.getText()) 

,並與平等線得到一個NullPointerException。我的計劃是一個二叉樹的實現:

public class BTree { 

private char value; 
private BTree left; 
private BTree right; 
private String indent; 
private boolean cheak; 
private String searchres; 

public BTree pushInTree (BTree node,char leter,String word) { 
    if(node == null){ 
    node = new BTree(); 
    node.value = leter; 
    node.indent = word; 
    return node; 
    } 
    else 
     if (node.value > leter) node.left = pushInTree(node.left, leter, word); 
     else node.right = pushInTree(node.right, leter, word); 
    return node; 
} 
public void output(BTree node) { 
    if (node == null) return; 
    System.out.println(node.indent+""); 
    if (node.left != null) output(node.left); 
    if (node.right != null) output(node.right); 
} 
    public void output2(BTree node) { 
    System.out.print(node.value+" "); 
    if (node.left != null) output2(node.left); 
    if (node.right != null) output2(node.right); 

} 
public boolean search (BTree node,char leter,String word){ 
    if (node == null)return cheak; 
    if (node.indent.equals(word)){ \\error here !!! 
     cheak=true; 
     searchres = node.indent; 
    } 
    if (node.value > leter) search(node.left, leter,word); 
    else search(node.right, leter,word); 
    return cheak; 
} 
public String result() { 
    return searchres; 
} 
} 

回答

1

if (node.indent.equals(word))拋出一個空指針,這意味着三兩件事之一:

1. node is null 
2. indent is null 
3. word is null. 

1. cannot be (because you have a null check). 
2. possible 
3. possible 

所以,你有兩種可能性。檢查他們。

0

找出哪個變量爲空。

如果您無法幫助,請使用調試器並停止未捕獲的NullPointerExceptions。

相關問題