I have a code like this:
interface InterfaceA { ... }
interface InterfaceB { ... }
class ClassA {
public void methodA(Class<? extends InterfaceB> clazz) { ... }
}
class ClassB<P extends InterfaceA & InterfaceB> {
public void methodB(P p) {
new ClassA().methodA(p.getClass());
}
}
Question: why the compiler does not allow passing p.getClass()method as an argument methodA- mesage error:
The method methodB(Class<? extends InterfaceB>) in the type ClassA is not applicable for the arguments (Class<capture
Clear that type Pextends InterfaceBin ClassB, so I have no idea why it doesn't work.
source
share