Dil*_*iya -1 java oop compiler-errors class anonymous-class
class Human {
void eat() {
System.out.println("human eat!");
}
}
public class Demo {
public static void main(String[] args) {
Human human = new Human() {
int x = 10;
public void test() {
System.out.println("test - anonymous");
}
@Override
void eat() {
System.out.println("customer eat!");
}
};
human.eat();
human.x = 10; //Illegal
human.test(); //Illegal
}
}
Run Code Online (Sandbox Code Playgroud)
这段代码为什么会human.x=10;出现human.test(0);编译错误?
该类型Human没有字段x或方法test(),并且您的变量human被定义为该类型。
您的匿名内部类具有该字段和该方法,因此您需要将变量定义为该类型。但“匿名”意味着它没有名称,因此您不能仅用Human不存在的名称进行替换。
但是,如果您使用var局部变量类型推断,将为该变量提供该匿名类的类型,因此替换Human human = ...为var human = 将使您的代码编译。
| 归档时间: |
|
| 查看次数: |
56 次 |
| 最近记录: |