They must be B and Parameter[] , since B is erasure T , and varargs are implemented as arrays:
Method method = a.getClass().getDeclaredMethod( "call", B.class, Parameter[].class );
Note that you have a syntax error: <T extends of B> must be <T extends B> .
Also note that the method you are showing does not have to be general. This will work just as well:
private void call(B object, Parameter... parameters) { ... }
source share