It is possible to accessing private data members of a java class,from any other classes.
You can achieve this by using reflection API
*****************************AccessingPrivateVariable.java*****************************
*****************************************PROGRAM ENDS**************************
You can achieve this by using reflection API
*****************************AccessingPrivateVariable.java*****************************
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
class BaseClass
{
private String msg= "HelloWorld";
private String getMsg()
{
return msg;
}
}
public class AccessingPrivateVariable
{
public static void main(String[] args)throws IllegalAccessException, InvocationTargetException
{
BaseClass bc = new BaseClass();
Class cls = bc.getClass();
System.out.println("********Accessing all the methods*************");
Method methods[] = cls.getDeclaredMethods();
for (int i = 0; i < methods.length; i++)
{
System.out.println(methods[i].getReturnType()+" " +methods[i].getName());
methods[i].setAccessible(true);
System.out.println(methods[i].invoke(bc) );
}
// Print all the field names & values
System.out.println("**************Accessing all the fields************");
Field fields[] = cls.getDeclaredFields();
for (int i = 0; i < fields.length; i++){
System.out.println("Field Name: " + fields[i].getName());
fields[i].setAccessible(true);
System.out.println(fields[i].get(bc));
}
}
}
*****************************************PROGRAM ENDS**************************
No comments:
Post a Comment