假设我在Groovy中有这样的代码:
class Base {
static String name = 'base';
}
class Child extends Base {
String name = 'child';
static main(args){
def ch = new Child();
println ch.name;
}
}
Eclipse Mars 4.5.2强调存在错误:
此实例方法无法覆盖Base
中的静态方法
我没有覆盖任何静态方法,它按照我的预期执行,那么Eclipse认为错误是什么?
答案 0 :(得分:0)
可以改进错误消息,因为您在这里所做的与方法无关(除非Eclipse正在考虑生成的Java中的方法),它与变量有关。此外,Groovy并不关心这一点,因此代码可以工作,但Java不喜欢它。
Eclipse告诉您,您正在Child
中定义一个与Base
中的静态变量同名的实例变量。
两个类都应该有一个静态修饰符。
class Child extends Base {
static String name = 'child'
//...
}