Click here to watch in Youtube :
https://www.youtube.com/watch?v=T24VPOZ7RuU&list=UUhwKlOVR041tngjerWxVccw
Student.java
https://sites.google.com/site/ramj2eev1/home/javabasics/ReflectionDemo_call_private_getmethod.zip?attredirects=0&d=1
Github Link:
https://github.com/ramram43210/Java/tree/master/BasicJava/ReflectionDemo_call_private_getmethod
Bitbucket Link:
https://bitbucket.org/ramram43210/java/src/35f19409ce262cff1a4ed631c9adc6ca413c2cb0/BasicJava/ReflectionDemo_call_private_getmethod/?at=master
See also:
All JavaEE Viedos Playlist
All JavaEE Viedos
All JAVA EE Links
Servlets Tutorial
All Design Patterns Links
JDBC Tutorial
Java Collection Framework Tutorial
JAVA Tutorial
Kids Tutorial
https://www.youtube.com/watch?v=T24VPOZ7RuU&list=UUhwKlOVR041tngjerWxVccw
Student.java
class Student { private String name; public Student(String name) { this.name = name; } private String getName() { return name; } }ReflectionDemo.java
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; /** * * Despite the common belief it is actually possible to access private fields * and methods of other classes via Java Reflection. It is not even that * difficult. This can be very handy during unit testing. * */ public class ReflectionDemo { public static void main(String[] args) { try { Class classObj = Student.class; Method privateGetNameMethod = classObj.getDeclaredMethod("getName", null); /* * Set the accessible flag for this object to the indicated boolean * value. A value of true indicates that the reflected object should * suppress Java language access checking when it is used. A value * of false indicates that the reflected object should enforce Java * language access checks. * * First, if there is a security manager, its checkPermission method * is called with a ReflectPermission("suppressAccessChecks") * permission. * * By calling Method.setAcessible(true) you turn off the access * checks for this particular Method instance, for reflection only. * Now you can access it even if it is private, protected or package * scope, even if the caller is not part of those scopes. * */ privateGetNameMethod.setAccessible(true); Student student = new Student("Peter"); String returnValue = (String) privateGetNameMethod.invoke(student,null); System.out.println("returnValue = " + returnValue); } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException | IllegalArgumentException e) { e.printStackTrace(); } } }Output
returnValue = Peter
Click the below link to download the code:https://sites.google.com/site/ramj2eev1/home/javabasics/ReflectionDemo_call_private_getmethod.zip?attredirects=0&d=1
Github Link:
https://github.com/ramram43210/Java/tree/master/BasicJava/ReflectionDemo_call_private_getmethod
Bitbucket Link:
https://bitbucket.org/ramram43210/java/src/35f19409ce262cff1a4ed631c9adc6ca413c2cb0/BasicJava/ReflectionDemo_call_private_getmethod/?at=master
See also:
No comments:
Post a Comment