Saturday, October 27, 2012

Retrieve Methods Information of Class using Java Reflection API

    Using Java Reflection API, It's easy to get all methods information of class.

    Key points to retrieve Methods information of class :
    1. Create Object of Class
    2. Retrieve all methods of class in Method[] array using getMethods()
    3. Get Method name using getName()
    4. Get Return Type of method using getReturnType()
    5. Get all parameter of method using getParameterTypes()

    Java Program to get methods information of class :

    List list = new ArrayList();
    Class originalClass = list.getClass();         
    
    Method[] methods = originalClass.getMethods();
    
    System.out.println("\nMethods used - ");
    for (int i = 0; i < methods.length; i++) {
         System.out.println("Method Name :" + methods[i].getName());
         System.out.println("Return Type : " + methods[i].getReturnType().getName());
         System.out.println("Parameters : ");
         Class[] parameters = methods[i].getParameterTypes();
         for (int j = 0; j < parameters.length; j++) {
          System.out.println(parameters[j].getName()+":"+parameters[j].getSimpleName());
         }
         System.out.println("");
    }
    
    Output : 

    Methods used - 
    Method Name :clone
    Return Type : java.lang.Object
    Parameters : 
    
    Method Name :add
    Return Type : void
    Parameters : 
    int : int
    java.lang.Object : Object
    
    Method Name :add
    Return Type : boolean
    Parameters : 
    java.lang.Object : Object
    
    Method Name :contains
    Return Type : boolean
    Parameters : 
    java.lang.Object : Object
    
    Method Name :get
    Return Type : java.lang.Object
    Parameters : 
    int : int
    
    Method Name :indexOf
    Return Type : int
    Parameters : 
    java.lang.Object : Object
    
    Method Name :isEmpty
    Return Type : boolean
    Parameters : 
    
    Method Name :lastIndexOf
    Return Type : int
    Parameters : 
    java.lang.Object : Object
    
    Method Name :size
    Return Type : int
    Parameters : 
    
    Method Name :subList
    Return Type : java.util.List
    Parameters : 
    int : int
    int : int
    
    Method Name :toArray
    Return Type : [Ljava.lang.Object;
    Parameters : 
    [Ljava.lang.Object; : Object[]
    
    Method Name :toArray
    Return Type : [Ljava.lang.Object;
    Parameters : 
    
    Method Name :addAll
    Return Type : boolean
    Parameters : 
    java.util.Collection : Collection
    
    Method Name :addAll
    Return Type : boolean
    Parameters : 
    int : int
    java.util.Collection : Collection
    
    Method Name :iterator
    Return Type : java.util.Iterator
    Parameters : 
    
    Method Name :remove
    Return Type : boolean
    Parameters : 
    java.lang.Object : Object
    
    Method Name :remove
    Return Type : java.lang.Object
    Parameters : 
    int : int
    
    Method Name :clear
    Return Type : void
    Parameters : 
    
    Method Name :set
    Return Type : java.lang.Object
    Parameters : 
    int : int
    java.lang.Object : Object
    
    Method Name :ensureCapacity
    Return Type : void
    Parameters : 
    int : int
    
    Method Name :trimToSize
    Return Type : void
    Parameters : 
    
    Method Name :listIterator
    Return Type : java.util.ListIterator
    Parameters : 
    int : int
    
    Method Name :listIterator
    Return Type : java.util.ListIterator
    Parameters : 
    
    Method Name :removeAll
    Return Type : boolean
    Parameters : 
    java.util.Collection : Collection
    
    Method Name :retainAll
    Return Type : boolean
    Parameters : 
    java.util.Collection : Collection
    
    Method Name :hashCode
    Return Type : int
    Parameters : 
    
    Method Name :equals
    Return Type : boolean
    Parameters : 
    java.lang.Object : Object
    
    Method Name :toString
    Return Type : java.lang.String
    Parameters : 
    
    Method Name :containsAll
    Return Type : boolean
    Parameters : 
    java.util.Collection : Collection
    
    Method Name :getClass
    Return Type : java.lang.Class
    Parameters : 
    
    Method Name :notify
    Return Type : void
    Parameters : 
    
    Method Name :notifyAll
    Return Type : void
    Parameters : 
    
    Method Name :wait
    Return Type : void
    Parameters : 
    long : long
    
    Method Name :wait
    Return Type : void
    Parameters : 
    long : long
    int : int
    
    Method Name :wait
    Return Type : void
    Parameters :  
    

    Author : Anuj Patel
    Blog : http://goldenpackagebyanuj.blogspot.in/

    No comments:

    Post a Comment