Ich habe die unten Testklasse in meinem Java-Code zu erstellen:Java - Fehler eine funktionale Schnittstelle mit einem
Function<? super Either<? extends Object, ? extends Object>, ? super Either<? extends Object, ? extends Object>> test = new Function<Either<Integer, Integer>, Either<Integer, Integer>>() {
@Override
public Either<Integer, Integer> apply(Either<Integer, Integer> integers) {
return integers;
}
}
Dokumentation zu finden sie hier: http://static.javadoc.io/io.javaslang/javaslang/2.0.2/javaslang/control/Either.html.
Aber ich bekomme die folgenden Compiler-Fehler (Java 8)
Error:(77, 129) java: incompatible types:
<anonymous java.util.function.Function<javaslang.control.Either<java.lang.Integer,java.lang.Integer>,javaslang.control.Either<java.lang.Integer,java.lang.Integer>>>
cannot be converted to
java.util.function.Function<? super javaslang.control.Either<? extends java.lang.Object,? extends java.lang.Object>,? super javaslang.control.Either<? extends java.lang.Object,? extends java.lang.Object>>
Ich bin neu in Java und bin nicht sicher, was hier nicht stimmt. Jede Hilfe wird sehr geschätzt.
Ich verstehe diesen Code macht keinen Sinn und das ist nicht, wie ich es wirklich benutze. Ich versuche tatsächlich, eine Funktion an eine interne Bibliothek zu übergeben. Aber ich sollte diesen Kompilierfehler nicht bekommen, wo entweder nicht konvertiert werden kann? super Entweder
Danke !!
Sie sind neu in Java, aber Sie versuchen, Generika auf eine sehr fortgeschrittene Art und Weise zu verwenden; mein Vorschlag: Geh zurück und schau in die Dinge hinein, mit denen Neulinge in der Java-Sprache anfangen würden ;-) – GhostCat
Tipp: '? extends Objekt ist gleichbedeutend mit "?". – shmosel
Warum deklarieren Sie Ihre Variable nicht einfach als den von Ihnen erstellten Typ? I.e. 'Funktion, Entweder >' –
Andreas