On 15/01/2018 20:56, Rony G. Flatscher wrote:
:


So the question is, how can I reflectively access "mtest1.Class01A" static 
protected field
"myClassName" from "mtest3.Class03a" in Java 9?

The scenario in your mail is complicated but if I read it correctly then I would expect this code in mtest3.Class03A (mod_C) to work:
Class.forName("mtest1.Class01A").getDeclaredField("myClassName").get(null);

I can't tell if the code in the unnamed module extends mtest1.Class01A or not. If it does then the same code should work, if it's not a sub-class then you should see IllegalAccessException being thrown.

Your traces show InaccessibleObjectException being thrown so I think you are attempting to call setAccessible(true) to suppress the access check. You can't do on that protected members when the package is not open for deep reflection. In the example, mod_A would need to `opens mtest1` to allow this.

-Alan.

Reply via email to