A Little Java 5 Idiom
In Java 5, an application's main function can be declared with varargs parameters instead of an array of Strings. For example:
public class Main { public static void main(String... args) { for (String arg : args) System.out.println(arg); } }
Not a particularly astounding revelation: under the hood, varargs parameters are passed to the function as an array so the JVM sees no difference between a varargs main function and one declared to take a String array. However, it's easier to call a varargs main function from other Java code - in end-to-end tests for instance - and the resulting code is easier to read. For example:
private void runProgram() { Main.main("hello", "world"); }
instead of
private void runProgram() { Main.main(new String[]{"hello", "world"}); }
Because of this I've started declaring all my main functions with varargs parameters.