Java tutorial
import java.lang.reflect.Method; class GetMethods { public int add(int numberA, int numberB) { return numberA + numberB; } protected int multiply(int numberA, int numberB) { return numberA * numberB; } private double div(int numberA, int numberB) { return numberA / numberB; } } public class Main { public static void main(String[] args) throws Exception { GetMethods object = new GetMethods(); Class clazz = object.getClass(); Method[] methods = clazz.getMethods(); for (Method method : methods) { System.out.println("Method name = " + method.getName()); System.out.println("Method return type = " + method.getReturnType().getName()); Class[] paramTypes = method.getParameterTypes(); for (Class c : paramTypes) { System.out.println("Param type = " + c.getName()); } } Method method = clazz.getMethod("add", new Class[] { int.class, int.class }); System.out.println("Method name: " + method.getName()); } }