Итак, я проводил некоторое тестирование 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;
Мой вопрос: может ли кто-нибудь объяснить, какие правила компилятора или причины могут быть для аннотаций, чтобы не видеть статический внутренний класс класса. Имейте в виду, что закрытый класс пакета виден нормально и компилируется без импорта.