Делая следующее:
List<User> users = Collections.emptyList();
Тип возвращаемого списка из Collections.emptyList();
будет выведен как String
из-за левой части назначения. Однако, если вы предпочитаете не иметь этого вывода, вы можете определить его явно, выполнив следующее:
List<User> users = Collections.<User>emptyList();
В этом конкретном случае это может показаться избыточным для большинства людей (на самом деле, я видел очень мало кода в дикой природе, который использует явные аргументы типа), однако для метода с подписью: * было бы совершенно чисто для вызова doStuff()
с явным аргументом типа следующим образом:
doStuff(Collections.<String>emptyList());