Warum hat Gott die objektorientierte Programmierung erfunden.
Erstell Dir zu jeder Version eine Klasse, die sich ums Kovertieren kümmert. Willst Du ganz generisch halten, und dir die if-Abfragen (bzw. deine Case Strukur was genau das gleiche ist nur in grün), so kannst Du mit Metaklassen arbeiten. Ich hatte diese Problematik auch mal erfragt, und in
diesem Thread wurd ziemlich gut erklärt, wie du sowas handeln kannst.
Im Grunde wird aufgrund der Version, die als Integer irgendwie vorliegen könnte, die entsprechende richtige Klasse instanziert.