Reflection is an API that is used to examine or modify the behavior of methods, classes, and interfaces at runtime. The required classes for reflection are provided under java.lang.reflect package which is essential in order to understand reflection. So we are illustrating the package with visual aids to have a better understanding as follows:
We can invoke a method through reflection if we know its name and parameter types. We use two methods for this purpose as described below before moving ahead as follows:
Name of Constructor : public org.geeksforgeeks.write.Emp(int,double,java.lang.String)
Count of constructor parameter : 3
Constructor's parameter : int arg0
Constructor's parameter : double arg1
Constructor's parameter : java.lang.String arg2
Name of Constructor : org.geeksforgeeks.write.Emp()
Count of constructor parameter : 0
Length of method : 6
Method name: public int org.geeksforgeeks.write.Emp.getEid()
Method return type : int
Method parameter count: 0
Method name: public void org.geeksforgeeks.write.Emp.setEid(int,int,char)
Method return type : void
Method parameter count: 3
Method's Parameter : int arg0
Method's Parameter : int arg1
Method's Parameter : char arg2
Method name: public double org.geeksforgeeks.write.Emp.getEsal()
Method return type : double
Method parameter count: 0
Method name: public void org.geeksforgeeks.write.Emp.setEsal(double,float,java.lang.String)
Method return type : void
Method parameter count: 3
Method's Parameter : double arg0
Method's Parameter : float arg1
Method's Parameter : java.lang.String arg2
Method name: public java.lang.String org.geeksforgeeks.write.Emp.getEname()
Method return type : class java.lang.String
Method parameter count: 0
Method name: public void org.geeksforgeeks.write.Emp.setEname(java.lang.String)
Method return type : void
Method parameter count: 1
Method's Parameter : java.lang.String arg0
class: class org.geeksforgeeks.write.Emp$A
Name of class: org.geeksforgeeks.write.Emp$A
class: class org.geeksforgeeks.write.Emp$B
Name of class: org.geeksforgeeks.write.Emp$B
class: interface org.geeksforgeeks.write.Emp$MyAnno
Name of class: org.geeksforgeeks.write.Emp$MyAnno
class: class org.geeksforgeeks.write.Emp$Week
Name of class: org.geeksforgeeks.write.Emp$Week