these lines from the System.outs
orchard.Person
public void orchard.TeamWorkSection.selected(orchard.Person)
-- so I have the right object of the correct class and a proper parameter
java.lang.IllegalArgumentException: object is not an instance of declaring class - from line (*)
-- is not what I had in mind!
Help me please!

Doug_R wrote:
pulled from a operating program, callingClass is defined like this:

private Class callingClass = null;

Yes, I assumed as much. "callingClass" is of type "Class". At some point it must have been assigned a value other than null, or your code would produce a NullPointerException, however.

but the object referenced by callingClass 'is a' "orchard.TeamWorkSection".

So callingClass references a Class object representing orchard.TeamWorkSection or one of its super classes.

Are you telling me that:

Method m = callingClass.getMethod("selected", parmTs);

can tell that callingClass refers to an orchard.TeamWorkSection but

m.invoke (callingClass, parms)

cannot?

No. Both know which type of object you want to operate on (the first one, because you explicitly mention it by using callingClass and the second one because the Method object knows on which class the method is declared).

What the second line does not know is what object you want to call that method on.

Or put differently: if you call a (non-static) method you provide two things: the object reference and the method name (let's skip the parameters for now).

.invoke() also tries to call a method. You provide two pieces of information: the method you want to call and the class you want to call it on. But it doesn't need the class (it already knows that), but needs the object instead!