Аннотация не наследуется от метода интерфейса

У меня есть интерфейс с аннотированным методом. Аннотация помечена@Inheritedпоэтому я ожидаю, что разработчик унаследует его. Однако это не так:

Код:

import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.reflect.Method;
import java.util.Arrays;

public class Example {

    public static void main(String[] args) throws SecurityException, NoSuchMethodException {
        TestInterface obj = new TestInterface() {
            @Override
            public void m() {}
        };

        printMethodAnnotations(TestInterface.class.getMethod("m"));
        printMethodAnnotations(obj.getClass().getMethod("m"));
    }

    private static void printMethodAnnotations(Method m) {
        System.out.println(m + ": " + Arrays.toString(m.getAnnotations()));
    }
}

interface TestInterface {
    @TestAnnotation
    public void m();
}

@Retention(RetentionPolicy.RUNTIME)
@Inherited
@interface TestAnnotation {}

Код выше печатает:

public abstract void annotations.TestInterface.m (): [@ annotations.TestAnnotation ()]

публичные аннулированные аннотации. Пример $ 1.m (): []

Так что вопрос в том, почему неobj.m() иметь@TestAnnotation несмотря на то, что он реализует метод, помеченный@TestAnnotation который ?@Inherited

Ответы на вопрос(3)

Ваш ответ на вопрос