В полной мере union-типы реализованы в Scala. Поэтому тебе надо сменить язык чтобы работать
на таком уровне выразительности своей идеи.
Например вот функция которая конвертит дату-время для строки или для лонг-типа.
def convertTime(time : String | Long) : String =
....
В Java есть вариант - передать базовый типп Object и в теле функции проверять instanceOf и делать
соотв. conditions или паттерн матчинг по типу.
String convert(Object object) {
......
}
Вобщем все варианты требуют явного перечисления логики которую ты хочешь сделать.
Или ты хотел как-то "схитрить" и не писать логику?