1

私はNullPointerException列に並んでいます

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

そして等号線で。私のプログラムは二分木実装です:

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;   
}
}
4

2 に答える 2

1

nullpointerif (node.indent.equals(word))をスローする場合、これは次の 3 つのいずれかを意味します。

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

したがって、2 つの可能性があります。それらを確認してください。

于 2012-10-09T08:34:51.980 に答える
0

null である変数を特定します。

助けがなければ実行できない場合は、デバッガーを使用して、キャッチされていない NullPointerExceptions で停止します。

于 2012-10-09T08:36:58.867 に答える