Usein samassa jonossa on sekaisin lukuja ja merkkijonoja. Jotta käsittely saataisiin symmetrisemmäksi eri tyyppien välillä, niin luokkaan Mjonot on kirjoitettu myös polymorfiset funktiot:
StringBuffer jono = new StringBuffer(" Volvo 145 | 2000 e | 3 kpl ") String s = ""; double d = 0.0; int kpl = 0; s = erota(jono,'|',s); // "Volvo 145" d = erota(jono,'|',d); // 2000 kpl = erota(jono,'|',kpl); // 3
Idea on siinä, että jos myöhemmin huomataan vaikka että kpl pitäisi olla tyypiltään double eikä int, riittää vain muuttujan kpl tyypin vaihtaminen.
Jos halutaan käsitellä tilanteet, joissa joku kenttä onkin virheellistä muotoa, on edellisestä myös poikkeuksen heittävät muodot:
try { s = erotaEx(jono,'|',s); // "Volvo 145" d = erotaEx(jono,'|',d); // 2000 kpl = erotaEx(jono,'|',kpl); // 3 } catch ( NumberFormatException ex ) { System.out.println(ex.getMessage()); }