Я только что изучил обобщенное программирование, интерфейс List<E> и ArrayList, поэтому я могу понять приведенное ниже утверждение.
ArrayList<String> list = new ArrayList<String>();
Но я не понимаю следующее утверждение, которое я видел во время серфинга в Интернете.
List<String> list2 = Collections.<String>emptyList();
-  Что такое 
Collections? Почему это неCollections<E>илиCollections<String>? -  Почему 
<String>помещается перед именем методаemptyList? 
(Не соответствует emptyList<String>() для Generic?)
- Что означает выражение?