Die Sache ist doch die, insofern es nicht vorausgesetzt wird muss ja niemand mit Generics arbeiten.
Ich für meinen Teil halte es in einigen Anwendungsfällen und um Redundanz zu unterbinden vollkommen für legitim die Möglichkeiten die einem hiermit geboten werden zu nutzen.
Um auf die eigentliche Frage des TO's zurück zu kommen:
Die Implementierung von Generics kommt immer auf den Anwendungsfall an zum einem im Bereich der Datenhaltung, zum anderen um eben Redundanz ( also das Wiederholen von bereits existierendem Code , für einen ähnlichen oder sogar den gleichen Anwendungsfall, mit anderen Datentypen zu unterbinden ).
Im Groben hatte Flown schon den mit besten Tip gegeben, schau dir einfach mal die Implementierung des Collection Frameworks an.
Und dann stell dir vor man hätte sich nicht dafür entschieden dies Generisch aufzubauen,
und man müsste somit für jeden Datentyp z.B eine ArrayList komplett selbst implementieren.