我有下面的測試類在我的Java代碼:爪哇 - 錯誤創建一個功能接口與
對於任何一個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;
}
}
文檔可以在這裏找到:http://static.javadoc.io/io.javaslang/javaslang/2.0.2/javaslang/control/Either.html。
,但我得到以下編譯錯誤(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>>
我是新來的Java,我不知道什麼是錯在這裏。任何幫助深表感謝。
我明白這段代碼沒有意義,這不是我真正使用它的方式。我實際上是試圖將一個函數傳遞給一個內部庫。但我不應該得到那個無法轉換的編譯錯誤?超級要麼
謝謝!!
您是java的新手,但您嘗試以非常先進的方式使用泛型;我的建議是:退後一步,看看Java語言的新手會以什麼開頭;-) – GhostCat
提示:'? extends Object'與'?'同義。 – shmosel
爲什麼你不只是將你的變量聲明爲你創建的類型?即Function <既可以是,也可以是>' –
Andreas