package com.javarush.test.level24.lesson02.home01;

import com.javarush.test.level24.lesson02.home01.SelfInterfaceMarkerImpl.UnsupportedInterfaceMarkerException;
import java.lang.reflect.Method;

public class Util {

    //пример того, как можно использовать интерфейс-маркер
    //this method is available only for a SelfInterfaceMarker implementation
    public static void testClass(SelfInterfaceMarker interfaceMarker) throws UnsupportedInterfaceMarkerException {
        if (interfaceMarker == null) throw new UnsupportedInterfaceMarkerException();
        for (Method method : interfaceMarker.getClass().getDeclaredMethods()) {
            System.out.println(method);
        }
    }
}
В 11 строчке есть вызов собственного исключения, находящегося в другом файле как внутренний класс. Компилятор ругается, говорит что это исключение is not an enclosing class. Если я все правильно понимаю, то тут 2 варианта решения - либо объявить этот класс static, либо вынести это исключение в отдельный файл. Собственно, вопрос - а что может случиться, если это не статический класс. То ли это я туго соображаю, но не могу придумать, что должно случиться, чтобы статичность класса имела значение в данном случае.