Java Means Durgasoft: DURGA SOFTWARE SOLUTIONS, 202 HUDA Maitrivanam, Ameerpet, Hyd. PH: 040-64512786
Java Means Durgasoft: DURGA SOFTWARE SOLUTIONS, 202 HUDA Maitrivanam, Ameerpet, Hyd. PH: 040-64512786
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
1
JAVA Means DURGASOFT
Reflection API:
1.Introduction
2.Class
3.Method
4.Field
5.Constructor
Reflection:
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
2
JAVA Means DURGASOFT
java.lang
Class
java.lang.reflect
Field
Method
Constructor
Package
Modifier
---
---
java.lang.Class:
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
3
JAVA Means DURGASOFT
class c=Class.forName("Employee");
b)JVM will search for its .class file at current location,at java
predefined library and at the locations refefered by "classpath"
environment variable.
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
4
JAVA Means DURGASOFT
c)If the required .class file is not available at all the above
locations then JVM will rise an exception like
"java.lang.ClassNotFoundException".
Ex:
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
5
JAVA Means DURGASOFT
Class c=e.getClass();
Ex:
Class c=Employee.class
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
6
JAVA Means DURGASOFT
Ex:
int val=c.getModifiers()
String modifiers=Modifier.toString(val);
import java.lang.reflect.*;
class Test{
Class c1=Clas.forName("Employee");
System.out.println(c1.getName());
Class c2=e.getClass();
System.out.println(c2.getName());
Class c3=Employee.class;
System.out.println(c3.getName());
Class c=Class.forName("Employee");
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
7
JAVA Means DURGASOFT
System.out.println("Super Class
:"+c.getSuperclass().getName());
Class[] cls=c.getInterfaces();
System.out.println("Interfaces :");
for(int i=0;i<cls.length;i++){
Class cl=cls[i];
System.out.println(cl.getName()+" ");
System.out.println();
int val=c.getModifiers();
System.out.println("Modifers :"+Modifier.toString(val));
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
8
JAVA Means DURGASOFT
java.lang.reflect.Field:
This method will return all the variables metadata which are
declared as public in the respective class and in the super
class.
This method will return all the variables metadata which are
available in the respective class only irrespective of public
declaration.
To get name of the variable,we have to use the following
method.
import java.lang.reflect.*;
class Employee{
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
10
JAVA Means DURGASOFT
class Test{
Class c=Employee.class;
Field[] flds=c.getDeclaredFields();
for(int i=0;i<flds.length;i++){
Field f=flds[i];
System.out.println("value :"+f.get(f));
int val=f.getModifiers();
System.out.println("Modifiers :"+Modifier.toString(val));
System.out.println("----------------------------------------");
java.lang.Method:
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
11
JAVA Means DURGASOFT
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
12
JAVA Means DURGASOFT
import java.lang.reflect.*;
class Employee{
{}
{}
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
13
JAVA Means DURGASOFT
class Test{
Class c=Employee.class;
Method[] mthds=c.getDeclaredMethods();
for(int i=0;i<mthds.length;i++){
Method m=mthds[i];
int val=m.getModifiers();
System.out.println("Modifiers :"+modifier.toString(val));
Class[] cls=m.getParameterTypes();
System.out.println("Parametes :");
for(int j=0;j<cls.length;j++){
Class cl=cls[j];
System.out.println(cl.getName()+" ");
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
14
JAVA Means DURGASOFT
System.out.println();
Class[] cls1=m.getExceptionTypes();
for(int j=0;j<cls1.length;j++){
Class cl1=cls1[j];
System.out.println(cl1.getName()+" ");
System.out.println();
System.out.println("-----------------------------");
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
15
JAVA Means DURGASOFT
java.lang.reflect.Constructor:
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
16
JAVA Means DURGASOFT
import java.lang.reflect.*;
class Employee{
class Test{
Class c=Employee.class;
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
17
JAVA Means DURGASOFT
Constructor[] con=c.getDeclaredConstructors();
for(int i=0;i<con.length;i++){
System.out.println("Constructor Name
:"constructor.getName());
int val=constructor.getModifiers();
System.out.println("Modifiers :"+Modifier.toString(val));
Class[] cls=constructor.getParameterTypes();
System.out.println("Parametes :");
for(int j=0;j<cls.length;j++){
Class cl=cls[j];
System.out.println(cl.getName()+" ");
System.out.println();
Class[] cls1=constructor.getExceptionTypes();
for(int j=0;j<cls1.length;j++){
Class cl1=cls1[j];
System.out.println(cl1.getName()+" ");
System.out.println();
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
18
JAVA Means DURGASOFT
System.out.println("-----------------------------");
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
19
JAVA Means DURGASOFT
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
20