我不知道为什么这个代码(在运行时提供了计算器)编译: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