I would be more than happy if someone could explain to me why that code compiles under Java 5. According to Sun's documentation, the following is the correct way to call printf:
Object[] args = { new String("Java is object oriented.") };
System.out.printf("|%s|%n", args);