Является ли определяющий загрузчик классов аннотации уровня класса всегда родителем инициирующего загрузчика классов этого класса?

Предположим следующее:

@SomeAnnotation
public interface Foo {
}

Я хотел бы знать, всегда ли это так, что либо определяющий загрузчик классовSomeAnnotation равно или родитель инициирующего загрузчика классовFoo.

я прочиталJVMS v8 раздел 5.3, но я не уверен, что здесь применимо. Раздел 5.3.4 говорит об ограничениях загрузки, но они, кажется, не применяются к аннотациям.

Вопрос, который я задаю, заключается в следующем:

    Class<?> fooClass = //will in some way obtain a reference to class Foo
    fooClass.getAnnotation(SomeAnnotation.class);

потерпит неудачу при наличии разных загрузчиков классов. Я знаю, что мог бы использоватьgetAnnotations и искать в результирующем массиве элемент, имя класса которого равно имениSomeAnnotation, Но мне интересно, будет ли работать следующее:

    Class<?> fooClass = //will in some way obtain a reference to class Foo
    fooClass.getAnnotation((Class<? extends Annotation>) fooClass
            .getClassLoader().loadClass(SomeAnnotation.class.getName()));

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

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