O usi i generics o non ne esci, dato che qualunque cast tu possa fare sul return comunque ti verrà annullato dalla conversione automatica al tipo restituito (Object).