Wednesday 25 October 2017

How to call the private method using Java Reflection | Reflection in java


Student.java
public class Student
{
    private String firstName = "Peter";
    private String lastName = "J";

    
    private void showStudentFullName()
    {
        System.out.println(firstName + " " + lastName);
    }

}
ReflectionDemo.java
import java.lang.reflect.Method;

/**
 * How to call private method from another class in java?
 * 
 * We can call the private method from outside the class by changing
 * the runtime behaviour of the class.
 * 
 * By the help of "java.lang.Class" class and
 * "java.lang.reflect.Method" class, we can call private method from
 * any other class.
 *
 */
public class ReflectionDemo
{
    public static void main(String[] args)
    {
        try
        {
            Class<?> classObj = Class.forName("Student");
            Student studentObj = (Student) classObj.newInstance();
            Method method = classObj.getDeclaredMethod("showStudentFullName", null);
            method.setAccessible(true);
            /*
             * Parameters:
             * 
             * obj - the object the underlying method is invoked from
             * 
             * args - the arguments used for the method call
             * 
             * Returns: the result of dispatching the method
             * represented by this object on obj with parameters args
             * 
             */

            method.invoke(studentObj, null);
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }

    }

}
Output
Peter J

Click the below link to download the code:
https://sites.google.com/site/ramj2eev1/home/javabasics/ReflectionDemo_Call_Private_method.zip?attredirects=0&d=1

Github Link:
https://github.com/ramram43210/Java/tree/master/BasicJava/ReflectionDemo_Call_Private_method

Bitbucket Link:
https://bitbucket.org/ramram43210/java/src/6c95796df09abfb09587d07613e2e6d5f9ad024e/BasicJava/ReflectionDemo_Call_Private_method/?at=master

See also:
  • All JavaEE Viedos Playlist
  • All JavaEE Viedos
  • All JAVA EE Links
  • Servlets Tutorial
  • All Design Patterns Links
  • JDBC Tutorial
  • Java Collection Framework Tutorial
  • JAVA Tutorial
  • Kids Tutorial
  • No comments:

    Post a Comment