title: Why can't @SafeVarags be applied to instance methods in a final class?
body: <p>According to the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/SafeVarargs.html" rel="noreferrer">documentation of <code>SafeVarargs</code></a>, the <code>@SafeVarargs</code> annotation can be applied only to constructors or variable arity methods that are either <code>static</code> or <code>final</code>. This is, <a href="http://aruld.info/annotation-type-to-reduce-varargs-warnings-available-in-b123-java-7-coin-minting-done/" rel="noreferrer">I have read</a>, to eliminate issues with annotation inheritance; that is to say, annotations on methods are only allowed if the method cannot be overridden. Clearly, constructors, <code>static</code> methods, and <code>final</code> methods cannot be overridden. However, neither can <code>private</code> methods or methods in a <code>final class</code>. <a href="http://openjdk.java.net/jeps/213" rel="noreferrer">Someone has complained</a> about the inability to designate <code>@SafeVarargs private</code> methods, but <a href="http://ideone.com/9nL33O" rel="noreferrer">neither of these issues has been addressed</a>. In general, <a href="https://www.google.com/search?q=%40safevarags+annotation+cannot+be+applied+to+non-final+instance+method&amp;oq=%40safevarags+annotation+cannot+be+applied+to+non-final+instance+method" rel="noreferrer">no one really seems to care</a>. Am I missing something? Am I complaining about something that doesn't have any practical applications? Or... ?</p>