Bug: NullPointerException in type inferencer

Neal Gafter neal at gafter.com
Sat Aug 7 12:33:57 PDT 2010


Try using Predicate<? extends Integer> as the target type.

On Saturday, August 7, 2010, Thomas Jung
<thomas.andreas.jung at googlemail.com> wrote:
> Hi,
>
> converting :
>
> Predicate<Integer> i = #(i){i > 0};
> Predicate<Integer> j = #(i){i % 2 == 0};
> Predicate<Integer> k = Predicates.and(i,j);
>
> with http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/base/Predicate.html
>
> to:
>
> Predicate<Integer> k = Predicates.and(#(i){i > 0},#(i){i % 2 == 0});
>
> results in an NullPointerException:
>
> java.lang.NullPointerException
>         at com.sun.tools.javac.comp.Infer.instantiateMethod(Infer.java:417)
>         at com.sun.tools.javac.comp.Resolve.rawInstantiate(Resolve.java:348)
>         at com.sun.tools.javac.comp.Resolve.selectBest(Resolve.java:597)
>         at com.sun.tools.javac.comp.Resolve.findMethod(Resolve.java:809)
>         at com.sun.tools.javac.comp.Resolve.findMethod(Resolve.java:773)
>         at com.sun.tools.javac.comp.Resolve.resolveQualifiedMethod(Resolve.java:1392)
>
> Actually, I wanted to see if type inference works from one parameter to another:
>
> Collections2.filter(
>         Arrays.asList(-2,-1,0,1,2,3,4),
>         Predicates.and(#(i){i > 0},#(i){i % 2 == 0});
>
> Thomas
>
>


More information about the lambda-dev mailing list