title: Java annotations - Identifier or TypeName
body: <p>The Java Language Specification states that <a href="http://docs.oracle.com/javase/specs/jls/se7/html/jls-9.html#jls-9.7.1" rel="noreferrer">a <em>normal annotation</em></a> is in the format </p>
  
  <blockquote>
    <p><em>NormalAnnotation</em>:<br>
    &nbsp;&nbsp;@ <em>TypeName</em> ( <em>ElementValuePairs</em><sub>opt</sub> )</p>
  </blockquote>
  
  <p><a href="http://docs.oracle.com/javase/specs/jls/se7/html/jls-9.html#jls-9.7.3" rel="noreferrer">A single-element annotation</a> is in the format:</p>
  
  <blockquote>
    <p><em>SingleElementAnnotation:</em><br>
    &nbsp;&nbsp;@ <em>Identifier</em> ( <em>ElementValue</em> )</p>
  </blockquote>
  
  <p>I do not understand, why this inconsistency, why is a normal annotation a <code>TypeName</code> and a single element annotation an <code>Identifier</code>? I believe the reference to <code>Identifier</code> might be a mistake in the specification since Identifier is not qualified and javac accepts AnnotationDeclarations that are qualified, for both normal annotations and single element annotations.</p>