title: Compile-time annotation processing
body: <p>Is there way to do compile-time annotation processing in Java?</p>
  <p>Consider this example:</p>
  <pre class="lang-java prettyprint-override"><code>@Name(&quot;appName&quot;)
  private Field&lt;String&gt; appName;
  
  public void setAppName(String name) {
     appName.setValue(name);
  }
  
  public String getAppName(String name) {
     return appName.getValue();
  }
  
  public void someFunction() {
     String whatFieldName = appName.getName();
  }
  </code></pre>
  <p>Where the annotation <code>Name</code> will be processed at compile-time to set the value for <code>Field</code> That is without the common runtime annotation processing. As such, when <code>appName.getName();</code> (the <code>Field</code>) is accessed it will return the typed value.</p>