Retrieves a method based on its signature, which includes a method name and an argument list.
The argument list is compared based on the underlying raw type of the type arguments. As an example,
a generic type parameter "T" is equivalent to
java.lang.Object
, since the raw form
of a type parameter is its upper bound.
Eligible methods include constructors and static initializer blocks which have the special JVM
assigned names of "<init>" and "<clinit>", respectively. This does not, however, include
inherited methods. These must be discovered by traversing the class hierarchy.