Free Data Structures and Algorithms Course









Subscribe below and get all best seller courses for free !!!










OR



Subscribe to all free courses

Using Reflection API for getting methods name and return type of objects in Java

Program to demonstrate Usage of Reflection API for getting methods name and return type in Java

package com.hubberspot.reflection;

import java.lang.reflect.Method;

class Customer {

 // private fields
 private String firstname;
 private String lastname;
 private String email;
 private static int counter;

 // public method
 public String setFirstname( int count ) {
  return this.firstname = "Jonty";
 }

 // protected method
 protected String setLastname( String name ) {
  return lastname = "Magic";
 }

 // private method
 private String getEmail( String email ) {
  return email = "Jonty@Magic.com";
 }

 // default method
 void setEmail(String email) {
  this.email = email;
 }

 // static method
 public static int getCounter() {
  return counter;
 }
 public static void setCounter(int counter) {
  Customer.counter = counter;
 }



}

public class CustomerMethods {

   public static void main(String[] args) {

 // Create a test object. We can create
 // and apply reflection on any class 
 // we want without knowing which methods
 // it has. We are taking Customer here. 
 Customer customer = new Customer();

 // Getting Class associated with Customer
 Class custClass = customer.getClass();

 try {
           System.out.println("-----------------------------------");

    // Using Method class we can use method of any
    // class we want. Here we are getting method
    // setFirstname by calling getMethod method of the
    // Class associated with Customer 
    Method method = custClass.getMethod("setFirstname", new Class[] {int.class});
   
    // getParameterTypes() returns an array of parameter for the method
    Class[] parameterType = method.getParameterTypes();
            
    // getName() returns the name of the method
    System.out.println("Method Name : " + method.getName());
    // getReturnType().getName() returns the name of return type of method
    System.out.println("Method Return Type : " + method.getReturnType().getName());
    // parameterType[0].getName() return the parameter type name of first parameter  
    System.out.println("Method Parameter Type : " + parameterType[0].getName());
 } catch (SecurityException e) {

    e.printStackTrace();

 } catch (NoSuchMethodException e) {

  e.printStackTrace();

 }

 System.out.println("-----------------------------------");
   
        // getDeclaredMethods() returns an array of methods declared in 
 // class itself
 Method[] methods = custClass.getDeclaredMethods();
 System.out.println("No. Methods in Customer : " + methods.length);
 for (Method method : methods) {
  System.out.println("Method Name : "  + method.getName());
  System.out.println("Method Return Type : " + method.getReturnType().getName());

 Class[] parameterTypes = method.getParameterTypes();
 for (Class classCustomer : parameterTypes) {
  System.out.println("Method Parameter Type : " + classCustomer.getName());
 }

 System.out.println("-----------------------------------");
     }

     System.out.println("-----------------------------------");
        
     // getMethods() returns an array of methods declared in class and 
     // in superclasses too
     methods = custClass.getMethods();
     System.out.println("No. Methods in Customer : " + methods.length);
     for (Method method : methods) {
 System.out.println("Method Name : "  + method.getName());
 System.out.println("Method Return Type : " + method.getReturnType().getName());

 Class[] parameterTypes = method.getParameterTypes();
 for (Class classCustomer : parameterTypes) {
    System.out.println("Method Parameter Type : " + classCustomer.getName());
 }

 System.out.println("-----------------------------------");
 }

   }   

}




Output of the program :





 
© 2021 Learn Java by Examples Template by Hubberspot