2

例如,IntelliJ 不会在实例变量上显示静态睡眠方法

Thread z = new Thread();
z.sleep(1000); // Eclipse shows sleep as part of z, while IntelliJ do not

看来 sleep 是 z 变量的一部分

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

4

3 回答 3

4

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

首选项 -> Java -> 编译器 -> 错误/警告 -> 对静态成员的非静态访问 -> 设置为错误。

在此处输入图像描述

于 2012-05-14T08:32:23.250 回答
1

这可能是一种解决方法,但在保存操作Preferences->Java->Editor->Save Actions)中,您可以要求“<em>使用声明类型更改对静态成员的非静态访问”,这将自动删除此类用法.

此外,Eclipse 通常不会首先建议静态提案。如果是这种情况,您应该检查您的Content Assist设置(Preferences->Java->Editor->Content Assist)。尤其是,确保将排序建议设置为“<em>按相关性”。

于 2012-05-14T09:24:47.823 回答
0

你不能从命令行让它成为编译错误,因为对象有它的类,并且你可以在这个对象上调用静态方法,这不仅会影响这个对象。由于这种全局影响,从类调用静态方法然后从对象调用静态方法只是一个更好的设计,这就是 IntelliJ 阻止你这样做的原因。

于 2012-05-14T08:34:31.923 回答