Konkrétan, használom, azért kellett felfedeznem 
Egy speciális szöveget (egyfajta programnyelvet) szeretne feldolgozni a program. A beolvasás minden adat-elemnél közel azonos, csak éppen pl. a String String-ként, a numerikus érték Long-ként érkezik. Az érkező adatelemekről egyébként elég sok mindent tudok, pl. azt is, hogy a numerikusak milyen pontosságúak kell legyenek. Nem csupán java értelemben, hanem pl. ha egy szín jön, az unsigned 32 bittel írható le (ami egyébként belefér egy signed int-be).
Az eredeti megvalósítás ellenőrizte a pontosságot, aztán visszaadott egy - a kívánt pontosságnak megfelelő - Long értéket. Csakhogy, egyszerűbb ha pl. pont a szineknél kapásból egy Integer pontosságú értéket ad vissza, mert akkor nem kell tovább bonyolítani a dolgot az adatot tároló változók szintjén.
Egyébként az egész teljesen prímán működött, amíg a különböző típusokat különböző metódusok szedték elő. Viszont egy közös Object-tel egyetlen átlátható metódusra egyszerűsödött az egész - éppen csak ide-oda kellett volna konvertálnom az adatokat. Na, ez nem ment. Utána meg már az érdeklődés is hajtott.
Bocs, ez kicsit leegyszerűsítette a problémát, de remélem, érthető maradt.
(Mivel nem vagyok profi programozó, azt sem igazán tudtam, hogy mire keressek a googliban. Végül aztán sikerült megtalálni.)