Я не совсем понимаю суть дженериков. Что они делают, как вы их используете?
Из того, что я могу сказать, все, что они делают, это проверить возвращаемые типы во время компиляции вместо времени выполнения, чтобы избежать запуска программы до появления ошибки. Это все, что они делают?
например:
public <Integer> int test() {
return 'c'; //will throw error at compile instead of runtime
}
Я читал кое-что о том, как генерики являются произвольными, и вы должны использовать только заглавные буквы? Это пугает.