2017-07-14 15 views
-6

クラスのノードとツリーとNodeActionInterface一般的なバイナリツリーのJava

public interface NodeActionInterface { 
public void action(); } 

とJavaで一般的なバイナリツリーを書き込むための私のタスクイストこれは私のノードである:

public class Node <T> implements NodeActionInterface { 

<T> data; 
Node leftTree; 
Node rightTree; 

public <T> Node(<T> data){ 
    this.data = data; 
} 
@Override 
    public void action() { 

    } 

しかし、のようなエラーがあります」識別子は期待されている "などがあります。誰でも助けてくれますか?

+0

エラーが「好き」ではなく実際のエラー(例:行番号を含む)を共有できますか? – dimo414

+2

' data' - > 'T data'。 – saka1029

+0

" data;"という行に識別子が必要です、予期しないトークン、シンボル "データ"を解決できません – Antoshka

答えて

1

まあ、構文エラーのかなりの数があります。

public class Node <T> implements NodeActionInterface 
{ 
    // <T> data; 
    T data; 
//^T is the data type... 

    Node<T> leftTree; 
    Node<T> rightTree; 
// ^not really an errror, but you should use the generic here 

    //public <T> Node(<T> data) 
    public Node(T data) 
//  ^declared another T hiding the "outer" T 
//   ^again: data type is T 
    { 
     this.data = data; 
    } 
} 
+0

"コンストラクタには戻り値の型がありません" public ノード(Tデータ)は戻り値の型を宣言していないので、型変数を宣言しています。 –

+0

@AndyTurnerなぜ機能本体? – Aconcagua

+0

あなたは何を意味するのか分かりません。私が言っているのは、[コンストラクタに型変数を宣言するのに間違いはありません](http://ideone.com/6ECSIG)です。クラスレベルの 'T'を隠しているので、このコードでは(少なくとも' T 'と呼んではいけません)、あなたは*できませんので、 'this.data = data'を割り当てることはできません;あなたがそれが存在しない理由が正しいのではないという理由だけです。 –

-1

実は、あなたはそれについてはあまりいない情報を提供しています。これが手がかりを得ることを試みるかもしれません。これは与えられたコードの構文修正です。

public class Node <T> implements NodeActionInterface { 

T data; 
Node leftTree; 
Node rightTree; 

public T Node(T data){   
    this.data = data; 
    return data; 
} 
関連する問題