Статические внутренние классы нуждаются в импорте для аннотаций

Итак, я проводил некоторое тестирование 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; 

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

5
задан John Vint 26 January 2011 в 01:17
поделиться