Обобщенный сборщик статистики с функциональным интерфейсом

Java Сложный generics

Задача «Обобщенный сборщик статистики с функциональным интерфейсом»

Реализуйте параметризованный класс `StatisticsCollector<T>`, который принимает произвольные объекты и вычисляет статистику: количество, сумму (если T extends Number, иначе null), минимум и максимум (если T extends Comparable). Дополнительно реализуйте метод `filter(Predicate<T>)`, возвращающий новый StatisticsCollector с объектами, прошедшими фильтр. Входные данные: число n, затем n строк, каждая строка содержит либо целое число, либо строку (без пробелов). После сбора всех элементов выведите статистику: count, sum (для чисел), min, max (если Comparable). Если тип не поддерживает операцию, выведите "N/A". Используйте generics и wildcards.

Формат ввода

В первой строке целое число n (1 ≤ n ≤ 1000). Затем n строк, каждая содержит одно значение (целое число или строка).

Формат вывода

Для собранных объектов выведите 4 строки: count, sum ("N/A" если не числа), min ("N/A" если не Comparable), max ("N/A" если не Comparable).

Примеры

Пример 1

ВВОД
3 100 hello 200
ВЫВОД
3 300 100 200
main.java