我在这段简单的代码中遇到了2个错误:
public class Test {
public static void main(String args[]) {
O o = new O() {
};
}
}
错误:
Test.java:3: cannot find symbol symbol : class O location: class Test O o = new O() { ^
Test.java:3: cannot find symbol symbol : class O location: class Test O o = new O() { ^
这里有什么问题?
答案 0 :(得分:3)
对于匿名内部类,您应该扩展现有类(并使用Polymorphism来覆盖方法)或现有接口。
使用此规则,代码将失败,因为没有现有的类(类型)O。
尝试定义类并使用多态来覆盖父类中所需的方法。
答案 1 :(得分:2)
正如评论所说,你必须在某处定义类。这段代码应该有效:
class O {}
public class Test {
public static void main(String args[]) {
O o = new O() {
};
}
}
答案 2 :(得分:1)
尝试:
public class Test {
public static void main(String args[]) {
Test o = new Test () {
};
System.out.println(o.getClass().getName());
}
}
你将获得Test $ 1