Così stavo facendo alcuni test di jUnit e volevo scrivere classi distinte che avevano funzionalità simili ma erano abbastanza piccole da scrivere all'interno di una singola classe. Indipendentemente dalla decisione di progettazione, mi ha portato a un errore del compilatore non sono sicuro di quali siano le regole per ciò che ho visto.Le classi interne statiche devono essere importate per le annotazioni
Si può immaginare che sarebbe simile a
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{
}
}
Ora, quando il compilatore calci dirà TestClassOne non può essere risolto a un tipo. C'è un modo semplice per risolvere questo. Per esempio, richiederebbe un'importazione esplicita della classe statica.
import foo.TestSuite.TestClassOne;
import foo.TestSuite.TestClassTwo;
La mia domanda è, chiunque può spiegare che cosa compilatore regole o le ragioni ci possono essere per le annotazioni di non essere in grado di vedere la classe interna statica della classe. Tieni presente che una classe privata del pacchetto viene visualizzata correttamente e viene compilata senza un'importazione.
Ben spiegato, grazie. –