2016-12-02 2 views
-1

Ich habe eine sehr einfache Schnittstelle:Incompatibe Rückgabetyp Fehler bei der Umsetzung generische Schnittstelle Methode

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

Ich versuche, die evaluate() Methode in einer anderen Klasse zu implementieren:

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

jedoch offenbar evaluate() hat einen 'inkompatiblen Rückgabetyp', obwohl die Schnittstellenmethode generisch ist. Konstruiere ich die generische Methode falsch - was passiert hier?

Vielen Dank im Voraus.

+4

Sie können einen primitiven Typ nicht als generischen Typ verwenden. 'T' Typ löscht zu' Objekt' – 4castle

+1

@ 4castle das sieht aus wie eine Antwort auf mich (mit einer Erklärung) ... egal, jemand anderes antwortete. –

Antwort

2

Sie sind nicht die Art auf die allgemeine Angabe, und Sie können nicht eine primitive double verwenden (aber Sie können die DoubleWrapper Typ verwenden).

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

Ah, fantastisch. Danke, ich wusste, dass es eine einfache Lösung sein würde. – user3668541

Verwandte Themen