title: Cannot reference "X" before supertype constructor has been called, where x is a final variable
body: <p>Consider the following Java class declaration:</p>
  
  <pre><code>public class Test {
  
      private final int defaultValue = 10;
      private int var;
  
      public Test() {
          this(defaultValue);    // &lt;-- Compiler error: cannot reference defaultValue before supertype constructor has been called.
      }
  
      public Test(int i) {
          var = i;
      }
  }
  </code></pre>
  
  <p>The code will not compile, with the compiler complaining about the line I've highlighted above. Why is this error happening and what's the best workaround?</p>