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());
}
}