List<String> foo = new ArrayList<>()
> so why should the programmer have to write it twice?
You wouldn't.