2012-10-10 35 views
6
結合

我已經在Eclipse(太陽神)下面的代碼/ STS它做一個運行方式> Java應用程序時運行並打印控制檯輸出,儘管明顯編制問題接口在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(); 
} 

任何人都可以精確定位這個Eclipse功能背後的推理。

注意:做一個javac的外部顯然無法編譯。

+0

我試過了。日食顯示通常的方法沒有實施的錯誤。 –

+0

是的。 Eclipse編譯器確實顯示錯誤。但是代碼仍然可以通過Run-As> Java Application「運行」。因此,這個問題。 –

回答

1

它可能是你已經錯誤之前編碼類成功。 Eclipse在您編碼時會自動編譯您的文件。就在這時,你碰巧有錯誤..然後你決定要爲Java應用程序運行,Eclipse會運行最近編譯的類。

我想你的代碼,實施了必要的方法來消除誤差,然後再刪除它放回錯誤..果然,它打印出來"Inside Test Function"。我也試過評論出System.out.println("Inside Test Function");,它仍然打印出來。

在另一種嘗試,我創建了另一個類,添加代碼,然後運行(,但沒有實施的錯誤,以避免自動編譯),然後打印出一個錯誤..

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

你怎麼得到一個'java.lang.NoSuchMethodError:main'錯誤。你是否在你創建的新類中使用了完全相同的代碼。我試圖像你說的那樣重新創建場景,但我的經歷與陳述不同。每次我保存jave文件時,我都會得到一個匹配的控制檯響應,而不是'緩存'響應(例如註釋掉Sysout部分)。只是想在保存之後檢查你是否正在建立文件?' –