How to invoke method using reflection in java

In this post, we will see how to invoke the method using reflection in java.

Let’s understand this with the help of the example.
Create a class named Employee.java. We will invoke this class’s method using reflection.

Create a main method named EmployeeReflectionMain.java.

When you run above program, you will get below output:

================================
Calling printName method using reflection
================================
Name:John
================================
Calling protected printAge method using reflection
================================
Age : 20
================================
Calling toString method using reflection and capturing return value
================================
John_20_HighStreet
================================
Calling static method printNationality using Reflection
================================
Nationality: Indian
================================
Calling private method printAddress using Reflection
================================
Address : HighStreet

Explanation
You need to first create an object of Class.We will get all the info such as constructors, methods and fields using this cls object.

Invoke method without parameters

You need to use getDeclareMethod() to get toString() method and toString() do not have any parameter hence, we will pass empty params.

Invoke method with parameters

As printName() is public method, we can use getMethod() to get method of the object and pass String parameter to printName() method.

Invoke static method using reflection

As you can see, we don’t require any object for static method, we are invoking methods using method.invoke(null,null).

Invoke private method using reflection

If you want to invoke private method using reflection, you need call method.setAccessible(true) explicitly and then only you can access private method.

Related Posts

  • 15 May

    Get and set Fields using reflection in java

    In this post, we will see how to get and set fields using reflection in java. java.lang.reflect.Field can be used to get/set fields(member variables) at runtime using reflection. Get all fields of the class All fields of the class can be obtained from the Class object. Here is an example. [crayon-603a6c5a8380a333221050/] Field[] will have all […]

  • 15 May

    Access private fields and methods using reflection in java

    In this post, we will see how to access private fields and methods using reflection in java. Can you access private fields and methods using reflection? Yes, you can. It is very easy as well. You just need to call .setAccessible(true) on field or method object which you want to access. Access private field Class.getDeclaredField(String […]

  • 15 May

    Invoke constructor using Reflection in java

    In this post, we will see how to invoke constructor using reflection in java. You can retrieve the constructors of the classes and instantiate object at run time using reflection. java.lang.reflect.Constructor is used to instantiate the objects. Instantiate Constructor with no parameters In case, you want to create object using no args constructor at runtime, […]

  • 24 October

    Invoke Getters And Setters Using Reflection in java

    In this post, we will see how to call getters and setters using reflection in java. We have already seen how to invoke method using reflection in java. There are two ways to invoke getter and setter using reflection in java. Using PropertyDescriptor You can use PropertyDescriptor to call getters and setters using reflection. Getter: […]

  • 23 September

    Java Reflection tutorial

    Introduction Reflection, as we know from the common term, is an image of yourself or something else you see in a mirror or a mirrored surface. Java, being an object-oriented language draws heavily from real-life examples and so is the Reflection API of Java inspired from real life. In Java, the process of analyzing, viewing […]

Leave a Reply

Your email address will not be published. Required fields are marked *

Subscribe to our newletter

Get quality tutorials to your inbox. Subscribe now.