java – 将方法声明为静态的效果是什么

我最近一直在看看我在Eclipse中的警告,遇到这一个:

如果该方法可以声明为静态,它将给出编译器警告。

在Eclipse帮助中精确引用,强调私有和最终:

When enabled, the compiler will issue an error or a warning for
methods which are private or final and which refer only to static
members.

是的,我知道我可以关闭它,但我想知道打开它的原因吗?

为什么将每个方法声明为静态是一件好事?

这会给任何性能的好处吗? (在移动域中)

指出一个方法作为静态,我想是显示你不使用任何实例变量,因此可以移动到一个utils风格类?

在一天结束时,我应该把它关闭’忽略’或者我应该修复它给我100个警告吗?

你认为这只是额外的关键字脏的代码,因为编译器将只是内联这些方法吗? (类似你不声明每个变量,你可以最终,但你可以)。

每当您编写方法时,您都将在给定范围内履行合同。范围越窄,写入错误的机会越小。

当一个方法是静态的,你不能访问非静态成员;因此,您的范围更窄。所以,如果你不需要,永远不需要(即使在子类)非静态成员来满足你的合同,为什么给这些字段访问你的方法?在这种情况下声明方法静态将允许编译器检查您不使用您不打算使用的成员。

此外,它将帮助阅读你的代码的人理解合同的性质。

这就是为什么在实际实现静态契约时声明静态方法是好的。

在某些情况下,您的方法仅仅意味着与类的实例相关的东西,并且它的实现不会实际使用任何非静态字段或实例。在这种情况下,您不会将方法标记为静态。

不要使用static关键字的示例:

>一个不做任何事情的扩展钩子(但是可以对子类中的实例数据做一些事情)
>一个非常简单的默认行为意味着可以在子类中自定义。
>事件处理程序实现:实现将随事件处理程序的类而变化,但不会使用事件处理程序实例的任何属性。

http://stackoverflow.com/questions/11240178/what-is-the-gain-from-declaring-a-method-as-static

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:java – 将方法声明为静态的效果是什么