Como fornecer valor Enum para uma anotação de uma constante em Java

Não consigo usar um Enum tirado de uma constante como parâmetro em uma anotação. Eu recebo este erro de compilação: "O valor para atributo de anotação [atributo] deve ser uma expressão constante enum".

Esta é uma versão simplificada do código para o Enum:

public enum MyEnum {
    APPLE, ORANGE
}

Para a anotação:

@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.METHOD })
public @interface MyAnnotation {
    String theString();

    int theInt();

    MyEnum theEnum();
}

E a classe:

public class Sample {
    public static final String STRING_CONSTANT = "hello";
    public static final int INT_CONSTANT = 1;
    public static final MyEnum MYENUM_CONSTANT = MyEnum.APPLE;

    @MyAnnotation(theEnum = MyEnum.APPLE, theInt = 1, theString = "hello")
    public void methodA() {

    }

    @MyAnnotation(theEnum = MYENUM_CONSTANT, theInt = INT_CONSTANT, theString = STRING_CONSTANT)
    public void methodB() {

    }

}

O erro aparece apenas em "theEnum = MYENUM_CONSTANT" sobre o methodB. Constantes de seqüência de caracteres e int são ok com o compilador, a constante de Enum não é, mesmo que seja o mesmo valor exato como aquele sobre methodA. Parece-me que este é um recurso ausente no compilador, porque todos os três são, obviamente, constantes. Não há chamadas de método, nenhum uso estranho de classes, etc.

O que eu quero alcançar é:

Para usar o MYENUM_CONSTANT na anotação e posteriormente no código.Para ficar tipo seguro.

Qualquer maneira de atingir esses objetivos seria ótimo.

Editar:

Obrigado a todos. Como você diz, isso não pode ser feito. O JLS deve ser atualizado. Decidi esquecer as enums nas anotações desta vez e usar constantes int regulares. Contanto que o int seja atribuído a partir de uma constante nomeada, os valores são limitados e o tipo "meio" é seguro.

Se parece com isso:

public interface MyEnumSimulation {
    public static final int APPLE = 0;
    public static final int ORANGE = 1;
}
...
public static final int MYENUMSIMUL_CONSTANT = MyEnumSimulation.APPLE;
...
@MyAnnotation(theEnumSimulation = MYENUMSIMUL_CONSTANT, theInt = INT_CONSTANT, theString = STRING_CONSTANT)
public void methodB() {
...

E eu posso usar MYENUMSIMUL_CONSTANT em qualquer outro lugar no código.

questionAnswers(5)

yourAnswerToTheQuestion