Eclipse自动为子类语句导入超类



我有一个具有静态初始化方法initDefaults的父类(具体来说是来自GMF)

public Class Parent{
public static initDefaults(){
...
}
}

我有一个自定义子类扩展父类

public Class CustomSubclass extends Parent{

public CustomSubclass(){
super();
..
}
}

在我的调用类中,我使用CustomSubclass名称调用initDefaults方法,即,CustomSubclass.initDefaults(),但是eclipse自动更正这个并输入Parent.initDefaults()

public Class ExampleClass{
public void initializer(){
// CustomSubclass.initDefaults(); this is what I typed
Parent.initDefaults(); // this is what eclipse corrected
...
}
}

ExampleClassCustomSubclass都在同一个包中,而Parent作为依赖项来自GMF。

为什么会发生这种情况?我有其他插件项目与相同的设置,并有这不是情况和CustomSubclass名称保留原样。但是我没有实现其他插件项目。

每当我用超类方法输入子类名时,超类就会自动导入,eclipse会用超类名纠正子类名。

Eclipse提供了这种代码气味(编译不会失败,但它更难阅读,有点慢,并且没有真正的好处,因为静态方法不能被覆盖):

  • 警告/错误间接访问静态成员默认禁用
  • 清理或/和保存操作成员访问>静态访问

这些默认值可以被覆盖以下项目特定设置(勾选Enable project specific setting复选框):

  • 警告/错误:Project>属性:Java Compiler>错误/警告
  • 清理:项目>属性:Java Code Style;清理
  • 保存动作:项目>属性:Java Editor>拯救行动

最新更新