<T>
является универсальным и обычно может читаться как «типа T». Это зависит от типа слева от <>, что это на самом деле означает.
Я не знаю, что такое Pool
или PoolFactory
является, но вы также упоминаете ArrayList<T>
, что это стандартный класс Java, поэтому я поговорю об этом.
Обычно вы не увидите там буквы «Т», вы увидите другой тип. Так что, если вы видите, ArrayList<Integer>
например, это означает «An ArrayList
of Integer
s». Например, многие классы используют обобщения для ограничения типа элементов в контейнере. Другой пример HashMap<String, Integer>
, который означает «карта с String
ключами и Integer
значениями».
Ваш пример пула немного отличается, потому что там вы определяете класс. Таким образом, в этом случае вы создаете класс, экземпляр которого может создать кто-то другой, с конкретным типом вместо T. Например, я мог бы создать объект типа, Pool<String>
используя определение вашего класса. Это будет означать две вещи:
- My
Pool<String>
может иметь интерфейс PoolFactory<String>
с createObject
методом, который возвращает String
s.
- Внутренне, он
Pool<String>
будет содержать ArrayList
строки.
Это отличная новость, потому что в другое время я мог бы прийти и создать такой, Pool<Integer>
который бы использовал тот же код, но имел Integer
везде , где вы видите T
в исходном коде.
T createObject
должно быть в бассейн или PoolFactory? Гдеthis.freeObjects = ...
должен быть? Это отдельный пример? Это незаконно иметь там; это должно быть внутри метода.