Reflection. Change private final field

From AsIsWiki
Jump to: navigation, search

Reflection


Change private final field

import java.lang.reflect.Field;

public class Main {

    public static void main(String[] args) throws Exception {

        A a = new A("123");
        System.out.println(a.getStr());

        Field field = a.getClass().getDeclaredField("str");
        field.setAccessible(true);
        field.set(a, "321");

        System.out.println(a.getStr());
    }
}

class A {

    private final String str;

    public A(String str) {
        this.str = str;
    }

    public String getStr() {
        return str;
    }
}



Reflection

Personal tools
Namespaces

Variants
Actions
Navigation
Tools