Pin It

How to determine information about class constructor at runtime using Java Reflection API ?.

Program to demonstrate how to determine information about class constructor at runtime using Java Reflection API.

package com.hubberspot.reflection;

import java.lang.reflect.Constructor;

// Create a class Employee with few constructor
// having access modifiers as : public , private
// default and protected

class Employee {

 public Employee(int salary, String name) {

 } 

 private Employee(String name, int salary) {

 }

 Employee(String name) {

 }

 protected Employee(int salary) {

 }
}

public class ConstructorFindings {

 public static void main(String[] args) {

  // Creating a instance of class Class of type Employee
  Class employeeClass = Employee.class;

  // object of class Instance has a method by name 
  // getConstructors() which returns back a list of
  // public constructors in the form of array
  // The array type is of Constructor class
  Constructor[] constructors = employeeClass.getConstructors();

  for(int i = 0; i < constructors.length; i++) {

   // Constructor class defines a method called as getParameterTypes()
   // which returns back an array of Class objects having metadata
   // for types of arguments used in the constructor

   Class[] parametersArr = constructors[i].getParameterTypes();

   System.out.print("Constructor is : public having arguments as : ");

   for(int j = 0; j < parametersArr.length; j++) {

    String parameterType ="";

    // printing the type of argument passed to the constructor 
    parameterType = parametersArr[j].getName();

    System.out.print(parameterType+" ");

   }
  }

  // In order to get information of constructors other than public 
  // we use getDeclaredConstructors() method on the instance of the 
  // Class (Employee). It returns back array of constructors having
  // access modifiers including public.

  constructors = employeeClass.getDeclaredConstructors();

  System.out.println("\n\nEmployee has other constructor with type as : ");

  for(int i = 0; i < constructors.length; i++) {

   Class[] parametersArr = constructors[i].getParameterTypes();

   for(int j = 0; j < parametersArr.length; j++) {

    String parameterType ="";

    parameterType = parametersArr[j].getName();

    System.out.print(parameterType+" ");

   }
  }
 }
}


Output of the program : 


 
Please Give Us Your 1 Minute In Sharing This Post!
SOCIALIZE IT →
FOLLOW US →
SHARE IT →
Related Posts Plugin for WordPress, Blogger...

Post your related queries below ...

comments powered by Disqus
Powered by Blogger.
 
© 2012 Learn Java by Examples Template by Hubber Spot