2017-05-19 6 views
-3

私のforループでエラーが発生する理由を理解していません(findNodeByNodeメソッド(ITreeNode <>)はNODETYPE型のために未定義です)。大学には全く同じコードがありますが、間違いはありませんか? 次の2つの連続した括弧持ってくれなぜforループにエラーがあるのか​​分かりませんか?

public class GenericTreeNode<NODETYPE> extends Object implements ITreeNode<NODETYPE> { 
NODETYPE nodeValue; 
String label; 
private LinkedList<NODETYPE> children; 

public GenericTreeNode(String label, NODETYPE value) 
{ 
    this.label=label; 
    this.nodeValue=value; 
    children= new LinkedList<NODETYPE>(); 
} 
public boolean checkNodeByValue(NODETYPE value) { 

    if(this.nodeValue.equals(value)) 
    { 
     return true; 
    } 
    else 
     return false; 
} 

public ITreeNode<NODETYPE> findNodeByValue(NODETYPE searchValue) { 


    if(this.checkNodeByValue(searchValue)) 
    { 
     return this; 
    } 

    if(this.isLeaf()) 
    { 
     return null; 
    } 

    long length = this.children.size(); 
    int i; 

    for(i=0; i < length; i++) 
    { 
     this.children.get(i)).findNodeByValue(searchValue); 
    } 


    return null; 
} 
+0

どのようなエラーが生じますか? – Mario

+0

オススメとして閉じる投票。 – dasblinkenlight

答えて

0

を助けてください:によって

 get(i)) 

変更文を:

this.children.get(i).findNodeByValue(searchValue); 
0

findNodeByValue(...)>クラスGenericTreeNode < NODETYPEに属ししかし、あなたはLinkedList < NODETYPE>のNODETYPEのインスタンス上でそれを呼び出しています。 GenericTreeNode < NODETYPE>のインスタンスで呼び出すことができます(または、このクラスのインスタンスでそれを行う場合にのみ呼び出します)