2012-10-09 2 views
1

나는 줄자바 BTREE와 NullPointerException이

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

와 equals와 라인에 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))는 nullpointer을 던져,이 세 가지 중 하나를 의미합니다 :

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

어떤 변수가 null인지 알아냅니다.

도움없이 해결할 수없는 경우 디버거를 사용하고 검색되지 않은 NullPointerExceptions를 중지하십시오.