title: Why are default methods not allowed in annotation types in Java 8?
body: <p>I today saw a glimpse of the wonderful world of annotations, so I tried my own code, but it does not want to compile:</p>
  
  <pre><code>public @interface SomeAnnotation {
      public String sayHello1() default "Hello world";
  
      default public String sayHello2() {
          return "Hello world";
      }
  }
  </code></pre>
  
  <p>What you see in <code>sayHello1</code>, is how default arguments for annotations are to be specified.<br>
  What I am wondering though, is why <code>sayHello2</code> is not allowed, which is available since Java 8.</p>
  
  <p>To me it seems to be providing the same functionality, or am I missing something here?</p>
  
  <p>Also, why did annotations have access to default method bodies (albeit very simple ones) since Java 5, while interfaces had to wait until Java 8?</p>