By
using reflection, you can access private methods in Java.
Step
1: Get the class object.
Ex:
Class myClass = Class.forName("Employee");
Step
2: get the declared method.
Ex:
Method myMethod = myClass.getDeclaredMethod("getNoEmployee")
Step
3: suppress Java language access checking by enabling the
accessibility to true for this method.
Ex:
myMethod.setAccessible(true)
Step
4: Invoke the method.
Ex:
myMethod.invoke(emp)
class Employee { private int id, age; private int count =0; Employee(){ count++; } int getId(){ return id; } int getAge(){ return age; } private int getNoEmployee(){ return count; } }
import java.lang.reflect.*; public class GetPrivateMethods { public static void main(String args[]) throws Exception{ Class myClass = Class.forName("Employee"); Employee emp = new Employee(); Method myMethod = myClass.getDeclaredMethod("getNoEmployee"); myMethod.setAccessible(true); Object result = myMethod.invoke(emp); System.out.println(result); } }
Output
1
No comments:
Post a Comment