
Play Store Application link – https://play.google.com/store/apps/details?id=com.ideepro.java25hours
Learn with youtube video-
![Java-Reflection-Reflection-API[1]](https://corejava25hours.com/wp-content/uploads/2021/02/java-reflection-reflection-api1.jpg)
💡Definition-
Generally reflection means -Ability of a software to analyze itself.
In java, reflection api allows to analyze and modify runtime behavior of class, at runtime.
package- java.lang.reflect
Let’s take a class Abc to analyze with reflection api
package reflexn; public class Abc { private int age=12; public String name="asd"; public Abc() { System.out.println("asdfgh"); } private Abc(String a){ System.out.println("zxcmnb"); } public void ds(){ System.out.println("dfg"); } private void sd(){ System.out.println("asd"); } }
💡Some important classes –
💡1- Class –
This class is used to load any class dynamically.
package reflexn; public class Cls { public static void main(String[] args) throws ClassNotFoundException { Class c = Class.forName("rexn.Abc"); } }
💡2- Constructor
package reflexn; import java.lang.reflect.*; import java.util.Arrays; public class Const { public static void main(String args[]) throws ClassNotFoundException { Class c = Class.forName("reflexn.Abc"); Constructor[] cdt = c.getDeclaredConstructors(); System.out.println(Arrays.toString(cdt)); } }
💡3- Method-
package reflexn; import java.lang.reflect.*; import java.util.Arrays; public class Methds { public static void main(String args[]) throws ClassNotFoundException { Class c = Class.forName("reflexn.Abc"); Method md[] = c.getDeclaredMethods(); System.out.println(Arrays.toString(md)); } }
💡4- Fields-
package reflexn; import java.lang.reflect.*; import java.util.Arrays; public class Flds { public static void main(String args[]) throws ClassNotFoundException { Class c = Class.forName("reflexn.Abc"); Field f[] = c.getDeclaredFields(); System.out.println(Arrays.toString(f)); } }
💡*Object creation using newInstance method
package reflexn; public class Nwins { public static void main(String args[]) throws ClassNotFoundException, InstantiationException, IllegalAccessException { Class c = Class.forName("reflexn.Abc"); Abc a = (Abc) c.newInstance(); } }
Interview Questions —
- What is reflection api in java?
- What can be achieved with reflection api in java?