This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
A generic class can provide benefits, sure. If there's some larger purpose being served. But if you just throw generics into a class, without any planned purpose, it's unlikely you will be able to do anything useful with them. Much like you can't create a sentence in English by simply choosing random words from an English dictionary.
If you want to see what benefits a generic class can provide, I suggest looking at List, and/or ArrayList. If someone gives me a List, how do I know what's in it? Should I just assume that the things inside are, let's say, Strings? Then cast to String and see if we get an exception. Or maybe check first using "if (element instanceof String)". Blech. Much better to get a List<String> in the first place, so you know that the things in the list are Strings. And the compiler knows. And we don't have to guess.