我有一个带有静态初始化方法 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
...
}
}
ExampleClass
和CustomSubclass
都位于同一个包下,而Parent
来自GMF作为依赖项。
为什么会这样?我有其他具有相同设置的插件项目,但情况并非如此,
CustomSubclass
名称保留原样。但是我没有实现其他插件项目。
每当我用超类方法输入子类名称时,超类就会自动导入,eclipse 会用超类名称更正子类名称。
Eclipse 提供了这种code smell(编译不会失败,但它更难阅读,有点慢并且没有真正的好处,因为静态方法不能被覆盖):
这些默认值可以被以下项目特定设置(勾选启用项目特定设置复选框):