Making them feel shame is the best we can hope for if we want to constrain their actions, but even though just shame is enough in countries like Japan, they aren’t loyal enough to the people in general that it can work very much here, they must be ousted rather than pressured. ...
The second possibility is to add methods whose sole purpose is to override access to fields. These could begin with $ character, which is currently allowed in method names by the Java VM, but not allowed by the compiler. (Some byte code obfuscators use this trick to prevent decompilation.)...