Estaba haciendo algunas pruebas jUnit y quería escribir distintas clases que tuvieran una funcionalidad similar pero que fueran lo suficientemente pequeñas como para escribir en una sola clase. Independientemente de la decisión de diseño, me llevó a un error de compilación. No estoy seguro de cuáles son las reglas para lo que vi.Las clases internas estáticas necesitan importación para las anotaciones
Se puede imaginar que sería algo como
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{
}
}
Ahora, cuando se inicia el compilador se dirá TestClassOne no se puede resolver a un tipo. Hay una manera fácil de resolver esto. Se requeriría una importación explicita de la clase estática, por ejemplo.
import foo.TestSuite.TestClassOne;
import foo.TestSuite.TestClassTwo;
Mi pregunta es, ¿puede alguien explicar qué compilador de reglas o razones puede haber para las anotaciones al no ser capaz de ver la clase interna estática clase. Tenga en cuenta que una clase privada de paquete se ve bien y compila sin importar.
Bien explicado, gracias. –