-
Notifications
You must be signed in to change notification settings - Fork 7.6k
Closed
Milestone
Description
I'm having issues with Observable.defer
and Java 8 and am not sure if there's anything we can do about it.
package io.reactivex.lab.edge;
import rx.Observable;
public class TestDefer {
public static void main(String[] args) {
Observable.defer(() -> {
return Observable.from(1);
}).toBlockingObservable().single();
}
}
When trying to run this from Eclipse I get this:
Exception in thread "main" java.lang.BootstrapMethodError: call site initialization exception
at java.lang.invoke.CallSite.makeSite(CallSite.java:328)
at java.lang.invoke.MethodHandleNatives.linkCallSite(MethodHandleNatives.java:296)
at io.reactivex.lab.edge.TestDefer.main(TestDefer.java:8)
Caused by: java.lang.ClassFormatError: Duplicate method name&signature in class file io/reactivex/lab/edge/TestDefer$$Lambda$1
at sun.misc.Unsafe.defineAnonymousClass(Native Method)
at java.lang.invoke.InnerClassLambdaMetafactory.spinInnerClass(InnerClassLambdaMetafactory.java:324)
at java.lang.invoke.InnerClassLambdaMetafactory.buildCallSite(InnerClassLambdaMetafactory.java:194)
at java.lang.invoke.LambdaMetafactory.altMetafactory(LambdaMetafactory.java:473)
at java.lang.invoke.CallSite.makeSite(CallSite.java:301)
... 2 more
and trying to compile with JDK I get:
TestDefer.java:8: error: method defer in class Observable<T#2> cannot be applied to given types;
Observable.defer(() -> {
^
required: Func0<? extends Observable<? extends T#1>>
found: ()->{ retu[...]1); }
reason: no instance(s) of type variable(s) T#3 exist so that Observable<T#3> conforms to ? extends Observable<? extends T#1>
where T#1,T#2,T#3 are type-variables:
T#1 extends Object declared in method <T#1>defer(Func0<? extends Observable<? extends T#1>>)
T#2 extends Object declared in class Observable
T#3 extends Object declared in method <T#3>from(T#3)
1 error
Java version:
java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)
Metadata
Metadata
Assignees
Labels
No labels