As I said I would always prefer non-static over static method.
- I am big fan of pure/stateless function,there easy to understand and test, Static method as pure function i.e stateless are not bad but the real problem is to maintain the decipline to keep the 'em stateless.
- Testablitly: Class B has static method B.foo(), now consider
class A {
public void bar() {
//some important code
B.foo();// How mock foo bahaviour? may be fiddling classloader with PowerMock but that comes with some bagage too
//some more important code