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

问题描述 投票:0回答:1

我有一个带有静态初始化方法 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 会用超类名称更正子类名称。

java eclipse eclipse-plugin eclipse-gmf
1个回答
1
投票

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

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

这些默认值可以被以下项目特定设置(勾选启用项目特定设置复选框):

  • 警告/错误:项目>属性:Java编译器>错误/警告
  • 清理:项目 > 属性:Java 代码样式 > 清理
  • 保存动作:项目>属性:Java编辑器>保存动作
© www.soinside.com 2019 - 2024. All rights reserved.