Что-то я где-то упустил, объясните, что означает такая конструкция: public static <T> void fill(List<T> list, T val) т.е. что означает дженерик метода, <T>перед типом возвр значения? что это нам дает? когда вызываем метод, то пишем просто nameClass.fill(intList, 0); т.е. при вызове метода мы ни где не указываем с каким типом он будет работать. Ни где нет указания типа метода, как мы это делаем, например при создании экземпляра класса: class Box<T> new Box<Integer>(10); тут понятно для чего мы указывали <T> в классе.