title: Annotation default "null" value
body: <p>Is it possible to specify a annotation with a null as default?</p>
  
  <p>What I want to achieve is something like optional annotation attributes.</p>
  
  <p>For example</p>
  
  <pre><code>public @interface Foo {
  
      Config value();
  
  }
  
  
  public @interface Config {
  
      boolean ignoreUnknown() default false;
      int steps() default 2;
  }
  </code></pre>
  
  <p>I would like to use @Foo (without specifying the value, so it should be some kind of optional) and I would also like to be able to write something like this: </p>
  
  <pre><code>@Foo (
      @Config(
          ignoreUnknown = true,
          steps = 10
      )
  )
  </code></pre>
  
  <p>Is it possible to do something like this with annotations?</p>
  
  <p>I don't want to do something like this</p>
  
  <pre><code>public @interface Foo {
  
     boolean ignoreUnknown() default false;
     int steps() default 2;
  }
  </code></pre>
  
  <p>because I want to be able to distinguish if a property has been set or not (and not if it has the default value or not).</p>
  
  <p>It's a little bit complicated to describe, but I'm working on a little Annotation Processor which generates Java code. However at runtime I would like to setup a default config that should be used for all @Foo, excepted those who have set own configuration with @Config.</p>
  
  <p>so what I want is something like this:</p>
  
  <pre><code>public @interface Foo {
  
         Config value() default null;
  
   }
  </code></pre>
  
  <p>But as far as I know its not possible, right? Does anybody knows a workaround for such an optional attribute?</p>