Ihre Schnittstelle hat eine generische ToEntity<T>
Methode, die Sie in Ihrer Implementierungsklasse zu einer nicht-generischen Methode gemacht haben Gens
como ToEntity<MyOtherClass>
. (A generisch Methode könnte jeden beliebigen Typ-Parameter annehmen, möglicherweise unter Berücksichtigung bestimmter Beschränkungen für T
. Ihr Gens
Klasse versucht, eine Definition zu liefern für ToEntity
nur für den Typ-Parameter MyOtherClass
was den Zweck von Generika zunichte macht).
In Ihrem Code-Beispiel ist es unklar, wie Ihr Gens
Klasse versucht, die MyOtherClass
Typ; er ist sicherlich nicht in die Logik der ToEntity
. Wir benötigen mehr Informationen, um Ihnen weiterhelfen zu können.
Zur Veranschaulichung: Ihre derzeitige Definition des Begriffs ITranslator<E, R>
Schnittstelle bietet, in einfachem Englisch:
"Ich biete einen Mechanismus zur Übersetzung jeden Datensatz des Typs R
in eine Einheit des Typs E
, dieser Mechanismus ist von einem beliebigen benutzerdefinierten Typ abhängig ist T
."
Ihr Gens
Klasse hingegen "implementiert" die obige Schnittstelle so, wie sie derzeit gestaltet ist:
"Ich kann ganze Zahlen in Zeichenketten übersetzen. Ich liefere die Illusion der Erlaubnis der Benutzer einen Typ angeben kann, um zu steuern wie diese Übersetzung durchgeführt wird, aber in Wirklichkeit gibt es keine Wahl des Typs. Die MyOtherClass
Klasse beteiligt ist Das ist alles, was ich sagen kann."
Aus diesen beiden Beschreibungen geht hervor, dass die Gens
Klasse nicht wirklich das tut, was der ITranslator<E, R>
Schnittstellengarantien . Es ist nämlich nicht bereit, einen vom Benutzer angegebenen Typ für seine ToEntity
Methode. Deshalb lässt sich dieser Code nicht kompilieren.