奇怪的错误突出显示'实例方法无法覆盖静态方法'在Eclipse中

时间:2016-07-25 16:55:32

标签: eclipse groovy

假设我在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认为错误是什么?

1 个答案:

答案 0 :(得分:0)

可以改进错误消息,因为您在这里所做的与方法无关(除非Eclipse正在考虑生成的Java中的方法),它与变量有关。此外,Groovy并不关心这一点,因此代码可以工作,但Java不喜欢它。

Eclipse告诉您,您正在Child中定义一个与Base中的静态变量同名的实例变量。

两个类都应该有一个静态修饰符。

class Child extends Base {
    static String name = 'child'
    //...
}