例如,IntelliJ没有在实例变量
上显示静态睡眠方法Thread z = new Thread();
z.sleep(1000); // Eclipse shows sleep as part of z, while IntelliJ do not
看起来睡眠是z变量的一部分
如何防止Eclipse在实例变量上显示静态方法?如果可能的话,如何在Eclipse方面和命令行中使编译错误?
答案 0 :(得分:4)
不确定是否可以从选项中删除它,但是您可以使Eclipse产生错误:
偏好设置 - > Java - >编译器 - >错误/警告 - >静态成员的非静态访问 - >设为错误。
答案 1 :(得分:1)
这可能是一种解决方法,但在保存操作(偏好设置 - > Java->编辑器 - >保存操作)中,您可以要求“ 使用声明类型“更改对静态成员的非静态访问”,这将自动删除此类用法。
此外,Eclipse通常不会首先建议静态提案。如果是这种情况,您应该检查内容辅助设置(偏好设置 - > Java->编辑器 - >内容辅助设备)。特别是,请确保将排序提案设置为“按相关性”。
答案 2 :(得分:0)
您无法从命令行使其成为编译错误,因为对象具有其类,并且在此对象上您可以调用静态方法,这不仅会影响此对象。由于这种全局影响,从类和对象调用静态方法只是一种更好的设计,这就是IntelliJ阻止你的原因。