2017-07-14 84 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; 
}