I have the following class
public class MyClass {
private int myAttr;
public void setAttr(int a) {
myAttr = a;
Thread.dumpStack();
}
}
That way I can detect any attempt to modify myAttr. Well, almost any. It does not work when someone modifies myAttr using Field.set() method. How can I trap Java reflection usage?
You can’t. You’re at the mercy of the
SecurityManager, if one is around, to prevent anyone else from doing nasty things to you.Related question