Should private helper methods be static if they can be static

java, methods, static, static-methods

Solution

I prefer such helper methods to be `private static`; which will make it clear to the reader that they will not modify the state of the object. My IDE will also show calls to static methods in italics, so I will know the method is static without looking the signature.

Problem

Let's say I have a class designed to be instantiated. I have several private "helper" methods inside the class that do not require access to any of the class members, and operate solely on their arguments, returning a result. ``` public class Example { private Something member; public double compute() { double total = 0; total += computeOne(member); total += computeMore(member); return total; } private double computeOne(Something arg) { ... } private double computeMore(Something arg) {... } } ``` Is there any particular reason to specify `computeOne` and `computeMore` as static methods - or any particular reason not to? It is certainly easiest to leave them as non-static, even though they could certainly be static without causing any problems.

Original source

Related problems