I just studied about generic programming, the List interface, and ArrayList, so I can understand the statement below.
Arra         
        
Firstly, Collections is a helper library of static methods that operate on various types of collections. If you've done any sort of C++ programming, it's very synonymous to the 
In this case, you're invoking the static method emptyList(), which returns an empty list of a particular type. Since these methods still require a type, but Collections' methods can refer to many types, you have to specify the type upon invocation.
In order to call a generic method, you must call it with the parameter list (i.e. 
List someList = Collections.emptyList();