infatti per come hai dichiarato new Long(numero) sopra suppongo che numero sia long e quindi come ti ha detto LeLeFT, l'assegnazione che stai facendo non va affatto bene. Devi passare il wrapper Long a ret, ossia avrai

case 4: ret = new Long(numero); break;