I think title describes the problem. Here's some code:
import static org.junit.Assert.assertEquals;
import java.lang.annotation.*;
public class Main {
    public static void main(String[] args) throws Exception {
        assertEquals("foo", Main.class.getDeclaredMethod("myMethod").getAnnotation(Anno.class).param());
        // the magic here -> set to bar
        assertEquals("bar", Main.class.getDeclaredMethod("myMethod").getAnnotation(Anno.class).param());
    }
    @Anno(param = "foo")
    public void myMethod() {}
    @Retention(RetentionPolicy.RUNTIME)
    @interface Anno {
        String param();
    }
}
So far I'm guessing this is not possible. It seems that always when you try to get a method via reflection you only get copies and all values (like annotations) are reread from a deeper java layer. In these copies you could change values but these are gone if you reload.
Is there something I missed or is it really not possible?