2012-10-10 14 views
6

he el siguiente código en Eclipse (Helios)/STS que se ejecuta y la salida de impresiones de la consola cuando se hace una medida> Aplicación Java Run, a pesar de la compilación obvia emiteinterfaz de unión en Eclipse

public interface ITest{ 
    String func(); 
} 

public static class Test implements ITest{ 
    void printFunc(){ 
     System.out.println("Inside Test Function"); 
    } 
} 

public static void main(String[] args) {   
    Test test = new Test(); 
    test.printFunc(); 
} 

¿Alguien puede identificar el razonamiento detrás de este funcionamiento de Eclipse.

Nota: Hacer un javac externamente obviamente no se puede compilar.

+0

Lo intenté. eclipse muestra el error habitual de método no implementado. –

+0

Sí. El compilador de Eclipse muestra un error. Pero el código aún se las arregla para "ejecutar" a través de Run-As> Aplicación Java. De ahí la pregunta. –

Respuesta

1

Pudo haber codificado la clase con éxito antes de los errores. Eclipse autocompila su archivo mientras está codificando. En ese momento, tiene errores ... luego decide ejecutar como aplicación Java, Eclipse ejecutará la clase compilada más reciente.

Probé tu código, implementé los métodos necesarios para eliminar los errores, luego lo quité de nuevo para volver a poner los errores ... de hecho, imprimió "Inside Test Function". También probé a comentar System.out.println("Inside Test Function"); y todavía se imprimió.

En otra prueba, he creado otra clase, añadí el código, a continuación, ejecutar (sin implementar los errores para evitar la auto-compilar), entonces se imprime un error ..

java.lang.NoSuchMethodError: main 
Exception in thread "main" 
+0

¿Cómo se obtuvo un error 'java.lang.NoSuchMethodError: main' Pusiste exactamente el mismo código en la nueva clase que creaste. Traté de recrear el escenario como dijiste, pero mi experiencia es diferente, como se dijo. Cada vez que guardo el archivo jave, obtengo una respuesta de consola coincidente y no una respuesta "en caché" (por ej., La parte Sysout comentada). Solo quiero comprobar si está _desarrollando_ el archivo después de guardarlo? ' –

Cuestiones relacionadas