如何在Java上的类实例上抑制静态方法?

时间:2012-05-14 08:30:18

标签: java eclipse

例如,IntelliJ没有在实例变量

上显示静态睡眠方法
Thread z = new Thread();
z.sleep(1000); // Eclipse shows sleep as part of z, while IntelliJ do not

看起来睡眠是z变量的一部分

如何防止Eclipse在实例变量上显示静态方法?如果可能的话,如何在Eclipse方面和命令行中使编译错误?

3 个答案:

答案 0 :(得分:4)

不确定是否可以从选项中删除它,但是您可以使Eclipse产生错误:

偏好设置 - > Java - >编译器 - >错误/警告 - >静态成员的非静态访问 - >设为错误。

enter image description here

答案 1 :(得分:1)

这可能是一种解决方法,但在保存操作偏好设置 - > Java->编辑器 - >保存操作)中,您可以要求“ 使用声明类型“更改对静态成员的非静态访问”,这将自动删除此类用法。

此外,Eclipse通常不会首先建议静态提案。如果是这种情况,您应该检查内容辅助设置(偏好设置 - > Java->编辑器 - >内容辅助设备)。特别是,请确保将排序提案设置为“按相关性”。

答案 2 :(得分:0)

您无法从命令行使其成为编译错误,因为对象具有其类,并且在此对象上您可以调用静态方法,这不仅会影响此对象。由于这种全局影响,从类和对象调用静态方法只是一种更好的设计,这就是IntelliJ阻止你的原因。