Warum habe ich einen Fehler, wenn ich versuche, eine generische Bindung mit Guice zu überschreiben? (TypLiteral)

8

Ich möchte eine generische Typbindung überschreiben, aber ich habe immer den gleichen " No implementation was bound " Fehler.

Ich benutze Roboguice 3.

Hier ist ein Beispiel für Code, den ich verwende:

%Vor%

Und hier ist meine Injektor-Erstellung:

%Vor%

Wenn ich nicht versuche, es zu überschreiben (nur Benutzer Parser1), alles ist in Ordnung, wenn ich Standard-Objekt mit Anbietern überschreiben, funktioniert es auch gut, aber nicht mit TypeLiteral.

Mein Fehler ist:

%Vor%

Was mache ich falsch?

Danke.

    
Aurélien Lemaitre 09.12.2015, 10:28
quelle

2 Antworten

6

Sie sollten die Definition von Klassen ändern, die Ihre Schnittstelle implementiert haben.

Versuchen Sie Folgendes:

%Vor%

Und dann können Sie Ihre Schnittstelle auf diese Weise an die Klasse binden:

%Vor%     
eg04lt3r 14.01.2016 16:12
quelle
1

Ich bin mir nicht sicher, aber es sieht bemerkenswert aus, dass eine Bindung an eine Betoninstanz stattdessen zu einem Class verwendet wird:

bind (new TypeLiteral & gt; () {}). to ( new TypeLiteral () {} );

hast du es versucht

%Vor%

?

    
treeno 13.01.2016 14:18
quelle

Tags und Links