I am wondering if anyone can help me.
I have an issue with compiling some code in Eclipse but not with IntelliJ or javac.
I am using sneakyThrow to bubble a checked exception up through 2 streams.
Here is the smallest reproducible code I can make:
import java.io.IOException;
import java.util.List;
import java.util.function.Predicate;
import java.util.stream.Collectors;
public class Example {
public static void main(String[] args)
throws IOException {
List<List<Integer>> input = List.of(List.of(1, 2), List.of(2, 4));
// Should return any List whose elements are all even.
List<List<Integer>> output = input.stream()
.filter(bubblePredicate(o -> o.stream()
.allMatch(bubblePredicate(i -> {
if (i > 10) {
throw new IOException("Number too large.");
}
return i % 2 == 0;
}))))
.collect(Collectors.toList());
System.out.println(output);
}
private interface ThrowingPredicate<S, E extends Exception> {
boolean test(S s) throws E;
}
private static <S, E extends Exception> Predicate<S> bubblePredicate(ThrowingPredicate<S, E> callable)
throws E {
return s -> {
try {
return callable.test(s);
}
catch (Exception e) {
sneakyThrow(e);
return false;
}
};
}
private static <E extends Throwable> void sneakyThrow(Exception exception)
throws E {
throw (E)exception;
}
}
Compiles and runs completely fine with javac 11.0.12
, but doesn’t on Eclipse 4.21.0.I20210906-0500
nor Eclipse 4.27.0.20230309-1200
.
Has anyone encountered this before, or have any idea what I am misunderstanding?
Ohhh, that explains so much!
Well it explains why I looked so much like jerk (partially, at least). I’m still confused about why this is happening.
I see the comments in your screen snap, but I still don’t see them in the app. I’m going look if I see them in a browser.
Maybe this is a federating issue???
Haha, sorry I came across the way I did. I really was racking my brain trying to think what more I could provide. Normally for Java issues I can give a stacktrace, but in this case there is literally only a 4-word error message
When I view the post on your server it shows only our convo, so definitely a federation issue
Interesting. I don’t see that stuff (aside from the screen snap) in my browser logged into lemmy.ca or lemmy.ml. Weird.