The Artima Developer Community
Sponsored Link

Java Buzz Forum
How to access the private field using Java Reflection | Reflection in java

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Ram N

Posts: 2777
Nickname: ramram
Registered: Jul, 2014

Ram N is Java Programmer
How to access the private field using Java Reflection | Reflection in java Posted: Nov 2, 2017 9:09 AM
Reply to this message Reply

This post originated from an RSS feed registered with Java Buzz by Ram N.
Original Post: How to access the private field using Java Reflection | Reflection in java
Feed Title: JAVA EE
Feed URL: http://ramj2ee.blogspot.com/feeds/posts/default?alt=rss
Feed Description: This blog has viedo tutorials and Sample codes related to below Technologies. 1.J2EE 2.Java 3.Spring 4.Hibernate 5.Database 6.Oracle 7.Mysql 8.Design Patterns
Latest Java Buzz Posts
Latest Java Buzz Posts by Ram N
Latest Posts From JAVA EE

Advertisement

Click here to watch in Youtube : 
https://www.youtube.com/watch?v=nKUM17xZezE&list=UUhwKlOVR041tngjerWxVccw

Student.java
class Student
{
private String name;

public Student(String name)
{
this.name = name;
}

}
ReflectionDemo.java
import java.lang.reflect.Field;

/**
*
* 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;
Field privateFieldObj = classObj.getDeclaredField("name");
/*
* 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 Field.setAcessible(true) you turn off the access
* checks for this particular Field 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.
*/

privateFieldObj.setAccessible(true);
Student student = new Student("Peter");
String fieldValue = (String) privateFieldObj.get(student);
System.out.println("privateNameField value = " + fieldValue);
}
catch (NoSuchFieldException | SecurityException
| IllegalArgumentException | IllegalAccessException e)
{
e.printStackTrace();
}

}

}
Output
privateNameField value = Peter

Click the below link to download the code:
https://sites.google.com/site/ramj2eev1/home/javabasics/ReflectionDemo_access_private_field.zip?attredirects=0&d=1

Github Link:
https://github.com/ramram43210/Java/tree/master/BasicJava/ReflectionDemo_access_private_field

Bitbucket Link:
https://bitbucket.org/ramram43210/java/src/35f19409ce262cff1a4ed631c9adc6ca413c2cb0/BasicJava/ReflectionDemo_access_private_field/?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
  • Read: How to access the private field using Java Reflection | Reflection in java

    Topic: Dynamic method dispatch in java Previous Topic   Next Topic Topic: Storytellers - a Vue, NUXT, SSR, Vuetify, Firebase [Auth, Firestore, Storage, Functions] application

    Sponsored Links



    Google
      Web Artima.com   

    Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use