以下代码无法编译(使用Eclipse Luna):
public class Main {
public static void main(String[] args) {
java.lang.Object Object = new java.lang.Object(); // Error line
System.out.println(Object.class);
}
}
class java {
static lang lang;
}
class lang {
static Object Object;
}
class Object {
static java java;
}
Eclipse自动建议我“以'java.lang'类型创建类'Object'” ...
(我确实在构建路径中有JRE)。
那么,我的代码有什么问题呢?
编辑:
脱位声明和实例化声明中都存在错误。
编辑2:
实例化
java
仍然会产生相同的错误:public class Main {
public static void main(String[] args) {
java java = new java();
java.lang.Object Object = new java.lang.Object();
System.out.println(Object.class);
}
}
class java {
static lang lang = new lang();
}
class lang {
static Object Object = new Object();
}
class Object {
static java java = new java();
}
最佳答案
您的问题是,通过定义一个名为java
的类,您已经更改了java.lang.Object
的含义-因此,编译器现在将其视为在语义上不正确的东西,而不是将其视为java.lang.Object
类的名称。
不要创建一个名为java
的类。它破坏了一切。