fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.lang.reflect.*;
  6. import java.io.*;
  7.  
  8. /* Name of the class has to be "Main" only if the class is public. */
  9. class Ideone
  10. {
  11. static class FinalFieldExample {
  12. final int x;
  13. static FinalFieldExample f;
  14.  
  15. public FinalFieldExample() {
  16. anywhere(this);
  17. x = 3;
  18. }
  19.  
  20. static void writer() {
  21. f = new FinalFieldExample();
  22. }
  23.  
  24. static void anywhere(FinalFieldExample anywhere) { System.out.println(anywhere.x); }
  25. }
  26. public static void main (String[] args) throws java.lang.Exception
  27. {
  28. FinalFieldExample.writer();
  29.  
  30. FinalFieldExample.anywhere(FinalFieldExample.f);
  31.  
  32. Field f = FinalFieldExample.class.getDeclaredField("x");
  33. f.setAccessible(true);
  34. f.set(FinalFieldExample.f, 54);
  35. FinalFieldExample.anywhere(FinalFieldExample.f);
  36. }
  37. }
Success #stdin #stdout 0.05s 27880KB
stdin
Standard input is empty
stdout
0
3
54