2017-07-14 85 views
-6

我的任務IST用Java編寫與類節點和樹和NodeActionInterface一般二叉樹的Java

public interface NodeActionInterface { 
public void action(); } 

通用二叉樹這是我的節點:

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

在行「數據;」有錯誤:標識符預期,意外的令牌,無法解析符號「數據」 – 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 Node(T data)'沒有聲明返回類型,它聲明瞭一個類型變量。 –

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