Java – Get Parent Class Private Variable in Sub Class

I’m working on making a derived version of the Presto Hive plugin.  Unfortunately, the base class I need to inherit from uses its own private class loader, and the function I need to override (which is override-able!) for some reason requires that class loader as a parameter.

Anyway, long story short, I need to get the parent object’s private field to use it in the sub class I’m creating.  Reflection to the rescue!

Note: This is not generally good programming practice. Understand what the code does and why it does it before doing this.


//Class A file.

public class ClassA {
    private String name;
    public ClassA() { = "Hello World!";

// Class B file.

import java.lang.reflect.Field;

public class ClassB extends ClassA {
    public ClassB() {

    public void printSuperPrivateMember() throws Exception {
        Field nameField = ClassA.class.getDeclaredField("name");
        System.out.println((String) nameField.get(this));

    public static void main(String[] args) throws Exception {
        ClassB b = new ClassB();