method references: type inference, toString()
bitter_fox
bitterfoxc at gmail.com
Wed Feb 22 07:26:09 PST 2012
2012/2/22 Paul Holser <pholser at gmail.com>
> Hi lambda-dev,
>
> 1) Should the usage of Foo::isBar as the predicate fed to
> PredicateMatcher.matches() compile successfully? I'm hoping not to
> have to perform the SAM conversion by hand:
>
> Predicate<Foo> bar = Foo::isBar;
> assertThat(new BarredUpFoo(), PredicateMatcher.matches(bar);
Maybe in this case you don't need to convert by hand, if you help type
inference:
assertThat(new BarredUpFoo(), PredicateMatcher.<Foo>matches(Foo::isBar);
My sample works well:
import java.util.functions.Predicate;
public class Test extends SuperTest
{
interface Foo
{
boolean isBar();
}
public static <U> void create(Predicate<? super U> p) {}
public static void main(String[] args)
{
//Test.create(Foo::isBar); // Error
Test.<Foo>create(Foo::isBar);
}
}
class SuperTest
{
public static void create(Object o) {}
}
Regards,
bitter_fox
More information about the lambda-dev
mailing list