title: In what situations is static method a good practice?
body: <p>I have read the following discussions:</p>
  
  <p><a href="https://stackoverflow.com/questions/538870/java-static-methods-best-practices">Should private helper methods be static if they can be static</a> , and<br>
  <a href="https://stackoverflow.com/questions/658407/static-methods">Should all methods be static if their class has no member variables</a></p>
  
  <p>It seems that people in general would accept static methods, but are a little bit skeptical about it, for the following 2 reasons:</p>
  
  <ol>
  <li>They are hard to test.</li>
  <li>They violate the OO principle. (They
  are functions, not methods, said a
  person.)</li>
  </ol>
  
  <p>And the most acceptable static methods are <strong>private static</strong> ones. But then why do static methods exist at all, and in what situations they are the first priority to be adopted? </p>