我不知道爲什麼這個代碼(在運行時提供了計算器)編譯:Java編譯混淆:爲什麼這個代碼編譯?
import java.io.*;
import java.util.*;
public class StackOverflow {
StackOverflow overflow = new StackOverflow();
public void myCall() {
overflow.myPrint();
}
public static void main(String[] args) {
StackOverflow newStackOverflow = new StackOverflow();
newStackOverflow.myCall();
}
public void myPrint() {
System.out.println("I am confused!");
}
}
爲什麼我感到困惑的原因是堂妹,在類定義中,我想創建我的類的對象試圖定義。這不應該是一個編譯時錯誤?
一般來說,你想要拾取微妙的錯誤,開發人員不太可能通過讀取/運行代碼來拾取。在這種情況下,只要您嘗試運行它,錯誤就會很明顯。 – 2012-03-26 07:32:07