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.