Skip to content

Instantly share code, notes, and snippets.

@geelen
Created October 8, 2009 00:17
Show Gist options
  • Save geelen/204592 to your computer and use it in GitHub Desktop.
Save geelen/204592 to your computer and use it in GitHub Desktop.
class A {}
class B extends A {}
class Foo<X extends A> {
//fails
void foo(X x, Predicate<X> p) {
if (x instanceof B) {
p.apply((B) x);
}
}
//works
void foo2(X x, Predicate<X> p) {
if (x instanceof B) {
B b = (B) x;
p.apply((X) b);
}
}
//works
void foo3(X x, Predicate<A> p) {
if (x instanceof B) {
p.apply((B) x);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment