Итак, я проводил некоторое тестирование jUnit и хотел написать отдельные классы, которые имели бы аналогичную функциональность, но были достаточно малы, чтобы писать в одном классе. Независимо от решения по дизайну, это привело меня к ошибке компилятора. Я не уверен, каковы правила для того, что я видел.
Вы можете представить, что это будет выглядеть примерно так:
package foo;
@RunWith(Suite.class)
@SuiteClasses({ TestClassOne.class, TestClassTwo.class })
public class TestSuite{
@RunWith(SpringJUnit4ClassRunner.class)
public static class TestClassOne{
}
@RunWith(SpringJUnit4ClassRunner.class)
public static class TestClassTwo{
}
}
Теперь, когда компилятор пинает его, он скажет TestClassOne не может быть преобразован в тип . Есть простой способ решить эту проблему. Это потребует явного импорта статического класса, например.
import foo.TestSuite.TestClassOne;
import foo.TestSuite.TestClassTwo;
Мой вопрос заключается в том, может ли кто-нибудь объяснить, какие правила или причины могут существовать для аннотаций, чтобы они не могли видеть статический внутренний класс класса. Имейте в виду, что закрытый класс пакета виден нормально и компилируется без импорта.