2016-12-02 87 views
-1

我有一个非常简单的接口:实施时Incompatibe返回类型错误通用接口方法

public interface Evaluateable<T> { 
    public T evaluate(); 
} 

我想实现在另一大类evaluate()方法:

public class NumberNode() implements Evaluateable { 
    public double evaluate() { // Error with this method 
     return 5.0; 
    } 
} 

但是显然评估()有一个'不兼容的返回类型',尽管接口方法是通用的。我在构造泛型方法错误 - 这里发生了什么?

在此先感谢。

+4

您不能将基元类型用作泛型类型。 'T'型擦除到'对象' – 4castle

+1

@ 4castle,看起来像是对我的回答(有解释)......没关系,有人回答。 –

回答

2

你没有指定类型的通用的,你不能使用原始double(但你可以使用Double包装类型)。

public class NumberNode() implements Evaluateable<Double> { 
    public Double evaluate() { 
     return 5.0; 
    } 
} 
+0

啊,太棒了。谢谢,我知道这将是一个简单的解决方案。 – user3668541