Über Scala generics: Klassen-Manifest für Elementtyp T kann nicht gefunden werden

8

Für eine Funktion wie folgt:

%Vor%

Ich bekomme "Fehler: Klassenmanifest für Elementtyp T nicht gefunden" aus Zeile 2.

Gibt es trotzdem eine Lösung?

    
ximyu 13.08.2010, 05:12
quelle

2 Antworten

10

Fügen Sie einfach einen kontextgebundenen hinzu ClassManifest zu Ihrer Methodendeklaration:

%Vor%

Um ein Array zu erstellen, muss der konkrete Typ des Arrays zum Zeitpunkt der Kompilierung bekannt sein. Dieser Typ wird vom Compiler über einen impliziten ClassManifest-Parameter bereitgestellt. Das heißt, die Signatur des Array-Konstruktors ist tatsächlich

%Vor%

Um diesen Parameter zu liefern, muss ein ClassManifest im Bereich sein, wenn der Array-Konstruktor aufgerufen wird. Daher muss Ihre umgekehrte Methode auch einen impliziten ClassManifest-Parameter verwenden:

%Vor%

Die letztere, einfachere Notation wird als Kontextbindung bezeichnet.

    
Aaron Novstrup 13.08.2010, 05:24
quelle
2

Wenn Sie [T: ClassManifest] verwenden, wenn es als veraltet angezeigt wird, verwenden Sie [T: ClassTag]

    
dwipan 10.05.2013 10:03
quelle

Tags und Links