He aprendido que la única clase pública en un archivo Java también debe tener el método principal. Sin embargo, a continuación, ¿puede ver el método principal dentro de una clase interna? ¿Cuál es la regla con respecto a la definición del método principal en un archivo fuente?Método principal en una clase interna estática.
public class TestBed {
public TestBed() {
System.out.println("Test bed c'tor");
}
@SuppressWarnings("unused")
private static class Tester {
public static void main(String[] args) {
TestBed tb = new TestBed();
tb.f();
}
}
void f() {
System.out.println("TestBed::f()");
}
}
que debería funcionar si se hace público que la clase interna. – Thilo
Funciona como es. En mi caso, sin embargo, tuve que escapar del carácter '$' para iniciar desde el shell: '$ java TestBed \ $ Tester' – Vlad
@Thilo - la clase NESTED necesita ** no ** para ser pública. Ser público solo era cierto para las (muy) primeras versiones de Java. Hoy en día, Java es lo suficientemente inteligente como para encontrar el método en clases privadas (probado con Java 5, 6 y 7 en Windows XP) –