tl  tr
  Home | Tutorials | Articles | Videos | Products | Tools | Search
Interviews | Open Source | Tag Cloud | Follow Us | Bookmark | Contact   
 Java > Reflection > Invoke methods

Invoke methods 

The following example shows how to invoke static and instance methods using java reflection API.

File Name  :  
com/bethecoder/tutorials/reflection/InvokeMethod.java 
Author  :  Sudhakar KV
Email  :  [email protected]
   
package com.bethecoder.tutorials.reflection;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class InvokeMethod {

  /**
   @param args
   */
  public static void main(String[] args) {

    Calculator cal = new Calculator("Simple Math");
    
    //Invoke 'add' method on 'cal' instance
    try {
      Method method = cal.getClass().getMethod("add"int.class, int.class);
      Integer sum = (Integermethod.invoke(cal, 48);
      System.out.println("sum : " + sum);
      
    catch (SecurityException e) {
      e.printStackTrace();
    catch (NoSuchMethodException e) {
      e.printStackTrace();
    catch (IllegalArgumentException e) {
      e.printStackTrace();
    catch (IllegalAccessException e) {
      e.printStackTrace();
    catch (InvocationTargetException e) {
      e.printStackTrace();
    }
    
    
    //Invoke static 'toString' method
    try {
      Method method = Calculator.class.getMethod("toString", Calculator.class);
      
      //Pass 'null' as this is static method and we require no instance
      String str = (Stringmethod.invoke(null, cal);
      System.out.println("str : " + str);
      
    catch (SecurityException e) {
      e.printStackTrace();
    catch (NoSuchMethodException e) {
      e.printStackTrace();
    catch (IllegalArgumentException e) {
      e.printStackTrace();
    catch (IllegalAccessException e) {
      e.printStackTrace();
    catch (InvocationTargetException e) {
      e.printStackTrace();
    }
    
  }

}

class Calculator {
  
  private String name;
  
  public Calculator(String name) {
    this.name = name;
  }
  
  public int add(int i, int j) {
    return i + j;
  }
  
  public static String toString(Calculator cal) {
    return "Calculator[" + cal.name + "]";
  }
}
   

It gives the following output,
sum : 12
str : Calculator[Simple Math]



 
  


  
bl  br